Springcloud gateway过滤器
学习中笔记
常用工厂介绍
1、 healder头部拦截
- AddRequestHeaderGatewayFilterFactory
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- AddRequestHeader=authorization_code, Bearer
这将为所有匹配请求的下游请求标头添加authorization_code:Bearer头。
- RemoveRequestHeaderGatewayFilterFactory
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- RemoveResponseHeader=authorization_code, Bearer
这将为所有匹配请求的下游请求标头删除authorization_code:Bearer头。
- AddResponseHeaderGatewayFilterFactory:AddResponseHeader
这将为所有匹配请求的下游响应标头删除authorization_code:Bearer头。 - RemoveResponseHeaderGatewayFilterFactory:RemoveResponseHeader
- SetRequestHeaderGatewayFilterFactory:SetRequestHeader
- SetResponseHeaderGatewayFilterFactory:SetResponseHeader
- PreserveHostHeaderGatewayFilterFactory:PreserveHostHeader
没有参数。 此过滤器设置路由过滤器将检查的请求属性,以确定是否应发送原始主机头,而不是http客户端确定的主机头。 - RequestHeaderToRequestUriGatewayFilterFactory:RequestHeaderToRequestUri
当请求路由地址时,会根据设置参数来进行新的url路由
2、Parameter请求参数拦截
- AddRequestParameterGatewayFilterFactory
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- AddRequestParameter=user, admin
这会将user= admin添加到下游请求的所有匹配请求的查询字符串中。
3、Path路径拦截
- PrefixPathGatewayFilterFactory
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- PrefixPath=/root
这将使/root作为所有匹配请求的路径。将被路由到http://127.0.0.1:8086/root/**
- RewritePathGatewayFilterFactory
采用路径正则表达式参数和替换参数。
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- RewritePath=/wx-pa-api/(?<segment>.*), /$\{segment}
访问路径/wx-pa-api/root/getTest将被路由到/root/getTest
- SetPathGatewayFilterFactory
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
predicates:
- Path=/wx-pa-api/root/getTest
filters:
- SetPath=/root/getTest
访问路径/wx-pa-api/root/getTest将被路由到/root/getTest
- StripPrefixGatewayFilterFactory
StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- StripPrefix=1
去除第一个路径
4、status状态拦截
- SetStatusGatewayFilterFactory
采用单个状态参数。 它必须是有效的Spring HttpStatus。 它可以是整数值404或枚举NOT_FOUND的字符串表示。
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- SetStatus=401
匹配的路由状态都将成为401
5、redirect重定向拦截
- RedirectToGatewayFilterFactory
采用status和url参数。状态应该是300系列重定向http代码,例如301。url应该是有效的URL。这将是Location标头的值。
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- RedirectTo=301, http://127.0.0.1:8080
6、retry重试拦截
- RetryGatewayFilterFactory
retries: 重试次数
statuses: 应该重试的HTTP状态代码
methods: 应该重试的HTTP方法
series: 要重试的一系列状态代码
spring:
cloud:
gateway:
routes:
- id: wx-pa-api
uri: http://127.0.0.1:8086
filters:
- name: Retry
args:
retries: 3
statuses: NOT_FOUND
以上配置如果返回404错误则进行三次重试