当前位置:网站首页>[micro service SCG] 33 usages of filters
[micro service SCG] 33 usages of filters
2022-07-05 02:35:00 【Bulst】
List of articles
- Add request header / Request parameters / Response head
- New news header Request header
- Set request header 、 Filter configuration , Modify or remove the request header
- PreserveHostHeader
- rewrite response Encrypted password
- response duplicate removal
- Path prefixed
- To configure 30 A few Jump to the specified address
- Modify the status code
- Forwarding address
- Get rid of \ Add some levels in the request path
- Retry filter
- The filter sets the request size
- spring-session
- Default filter
Add request header / Request parameters / Response head
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: ossa-service-producer
uri: lb://ossa-service-producer
predicates:
- Path=/gw/producer/**
- After=2022-03-03T15:50:30.337+08:00[Asia/Shanghai]
- Before=2024-03-03T15:50:30.337+08:00[Asia/Shanghai]
filters:
- StripPrefix=1
# Add request header 、 Request parameters
- AddRequestHeader=origin-header,producer-header
- AddRequestParameter= origin-param,producer-param
- AddResponseHeader=rep-header,rep-header
New news header Request header
spring:
cloud:
gateway:
discovery:
locator:
enabled: true
lower-case-service-id: true
routes:
- id: ossa-service-producer
uri: lb://ossa-service-producer
predicates:
- Path=/gw/producer/{
id}
- After=2022-03-03T15:50:30.337+08:00[Asia/Shanghai]
- Before=2024-03-03T15:50:30.337+08:00[Asia/Shanghai]
filters:
- StripPrefix=1
# Add request header 、 Request parameters
- AddRequestHeader=origin-header,producer-header-{
id}
Set request header 、 Filter configuration , Modify or remove the request header
filters:
- StripPrefix=1
# Add request header 、 Request parameters
- AddRequestHeader=origin-header,producer-header-{
id}
- AddRequestParameter=origin-param,producer-param
- AddResponseHeader=rep-header,rep-header
# Set request header , If not, add , It was modified
- SetRequestHeader=X-Request-id,value
# Remove request header 、 Request parameters
- RemoveRequestHeader=X-Request-id
- RemoveRequestParameter=X-Request
- RemoveRequestParameter=X-Request-author
- AddResponseHeader=req-param,req-param
# First from header take from-Header, If so, assign to to-Header, If not from-Header No effect
- MapRequestHeader=from-Header,to-Header
PreserveHostHeader
Default on , stay gateway Forward the original request before forwarding the request host Put it on your head , Forward to the destination service .
spring:
cloud:
gateway:
routes:
- id: preserve_host_route
uri: https://example.org
filters:
- PreserveHostHeader
rewrite response Encrypted password
# for example : /42?user=ford&passwd=omg!what&flag=true After the following configuration, replace with /42?user=ford&passwd=***&flag=true
spring:
cloud:
gateway:
routes:
- id: rewriteresponseheader_route
uri: https://example.org
filters:
- RewriteResponseHeader=X-Response-Red, , password=[^&]+, password=***
response duplicate removal
RETAIN_FIRST Keep the first (default)
RETAIN_LAST Keep the last one
RETAIN_FIRST RETAIN_UNIQUE Keep unique
spring:
cloud:
gateway:
routes:
- id: dedupe_response_header_route
uri: https://example.org
filters:
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
Path prefixed
request / It's actually /mypath
spring:
cloud:
gateway:
routes:
- id: prefixpath_route
uri: https://example.org
filters:
- PrefixPath=/mypath
To configure 30 A few Jump to the specified address
#300 Multiple Multiple choice , The requested resource may include multiple locations , Accordingly, a list of resource characteristics and addresses can be returned for user terminal selection
#301 Moved Permanently A permanent move , The new location of the requested resource has been permanently moved , The returned information will contain URI, The browser will automatically direct to the new address , Future requests should use new URI Instead of
#302 Found Temporary movement , And 301 similar , Resources are temporarily moved , The client should continue to use the original URI
#303 See Other View other addresses , And 301 similar . Use GET and POST Request to view
#304 not changed , The requested resource has not been modified , When the server returns to this state , No resources will be returned
#305 Use proxy Using agents , The requested resource must be through a proxy
#306 Unused Abandoned HTTP Status code
#307 Temporary Redirect Temporary redirection , And 302 similar , Use GET request redirections
- RedirectTo=302,http://www.baidu.com
- RedirectTo=301,http://www.taobao.com
Modify the status code
Modify the status code , Sure org.springframework.http.HttpStatus
enumeration , You can also write the status code directly
In either case , Responsive HTTP The status is set to 401.
spring:
cloud:
gateway:
routes:
- id: setstatusstring_route
uri: https://example.org
filters:
- SetStatus=UNAUTHORIZED
- id: setstatusint_route
uri: https://example.org
filters:
- SetStatus=401
Forwarding address
visit /api/getheader Actual visit :/getheader, The destination address of forwarding must be / Otherwise it will go wrong
- RewritePath=/consumingServiceEndpoint, /backingServiceEndpoint
spring:
cloud:
gateway:
routes:
- id: rewritepath_route
uri: https://example.org
predicates:
- Path=/red/**
filters:
- RewritePath=/red/?(?<segment>.*), /$\{
segment}
Get rid of \ Add some levels in the request path
request /name/first/123 Actual request /123
spring:
cloud:
gateway:
routes:
- id: nameRoot
uri: https://nameservice
predicates:
- Path=/name/first/**
filters:
# Remove some paths from the front to the back
- StripPrefix=2
request /name/first/123 Actual request /prefix/name/first/123
spring:
cloud:
gateway:
routes:
- id: nameRoot
uri: https://nameservice
predicates:
- Path=/name/first/**
filters:
# Add prefix path
- PrefixPath=/prefix
Retry filter
spring:
cloud:
gateway:
routes:
- id: retry_test
uri: http://localhost:8080/flakey
predicates:
- Host=*.retry.com
filters:
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY
methods: GET,POST
backoff:
firstBackoff: 10ms
maxBackoff: 50ms
factor: 2
basedOnPreviousValue: false
The filter sets the request size
filters:
- name: RequestSize # Filter name
args: # Control the size of the request , More than that, return to 413. Request maximum default 5000000 about 5M
maxSize:1000 #1KB
spring-session
Only when integrated Spring Session Will be session Put it in Redis, To share Session function , If the project inherits Spring Session Medium Spring Security frame , If you want the security authentication information, you can forward it to the remote application , Then this configuration is necessary .
filters:
- SaveSession
Default filter
spring:
cloud:
gateway:
default-filters:
- AddResponseHeader=X-Response-Default-Red, Default-Blue
- PrefixPath=/httpbin
边栏推荐
- 179. Maximum number - sort
- openresty ngx_ Lua execution phase
- Character painting, I use characters to draw a Bing Dwen Dwen
- 【LeetCode】501. Mode in binary search tree (2 wrong questions)
- Icu4c 70 source code download and compilation (win10, vs2022)
- Security level
- Kotlin - 协程 Coroutine
- GFS分布式文件系统
- Exploration of short text analysis in the field of medical and health (I)
- 如何做一个炫酷的墨水屏电子钟?
猜你喜欢
Spoon inserts and updates the Oracle database, and some prompts are inserted with errors. Assertion botch: negative time
[uc/os-iii] chapter 1.2.3.4 understanding RTOS
Design of KTV intelligent dimming system based on MCU
Write a thread pool by hand, and take you to learn the implementation principle of ThreadPoolExecutor thread pool
A label colorful navigation bar
Prometheus monitors the correct posture of redis cluster
Grub 2.12 will be released this year to continue to improve boot security
Elfk deployment
Character painting, I use characters to draw a Bing Dwen Dwen
CAM Pytorch
随机推荐
【LeetCode】404. Sum of left leaves (2 brushes of wrong questions)
Problem solving: attributeerror: 'nonetype' object has no attribute 'append‘
Summary and practice of knowledge map construction technology
Yolov5 model training and detection
Which common ports should the server open
JVM's responsibility - load and run bytecode
Character painting, I use characters to draw a Bing Dwen Dwen
The application and Optimization Practice of redis in vivo push platform is transferred to the end of metadata by
Rabbit MQ message sending of vertx
Some query constructors in laravel (2)
Richview trvunits image display units
返回二叉树中两个节点的最低公共祖先
Abacus mental arithmetic test
CAM Pytorch
Introduce reflow & repaint, and how to optimize it?
d3js小记
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
Kotlin - coroutine
187. Repeated DNA sequence - with unordered_ Map basic content
"C zero foundation introduction hundred knowledge and hundred cases" (72) multi wave entrustment -- Mom shouted for dinner