目录
《SpringCloudAlibaba+Nacos整合Gateway网关》
《SpringCloudGateway结合Sentienl实现网关限流机制》
《Spring Cloud Gateway内置各类型Predicate(断言)使用说明》
路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定的路由。Spring Cloud Gateway 包含许多内置的 GatewayFilter 工厂,以下梳理了常用的过滤器。
1、AddRequestHeader
AddRequestHeader
由两个参数组成:第一个是header名称
,第二个是header值
。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- AddRequestHeader=X-Request-red, blue
配置为:在请求的header
中,设置name为X-Request-red
,value为blue
;然后过滤器将该header
信息传递到下游的header
中。
测试:
2、RemoveRequestHeader
RemoveRequestHeader
是一个header名称
的参数,它是要删除的标头的名称。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- RemoveRequestHeader=X-Request-Foo
配置为:在请求中,设置需要删除的header名称
;然后过滤器将该header
信息在传递到下游服务之前将其删除。
测试:
3、SetRequestHeader
SetRequestHeader
由两个参数组成:第一个是header名称
,第二个是header值
。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- SetRequestHeader=X-Request-Red, Blue
配置为:SetRequestHeader
将替换原有的header名称的值,在请求的header
中,设置name为X-Request-Red
,value为blue
;然后过滤器将该header
的原有Value值
替换为blue
再传递到下游的header
中。
测试:
4、AddRequestParameter
AddRequestParameter
由两个参数组成:第一个是参数的名称
,第二个是参数的值
。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- AddRequestParameter=color, blue
配置为:在请求时,网关过滤器中新增一组name为color
,value为blue
的参数;然后过滤器将该组参数传递到下游服务中。
测试:
5、RemoveRequestParameter
RemoveRequestParameter
是一个指定参数名称
的参数,它是要删除的查询参数的名称。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- RemoveRequestParameter=color
配置为:在请求中,设置需要删除的参数名称
;然后过滤器将该参数
信息在传递到下游服务之前将其删除。
测试:
6、AddResponseHeader
AddResponseHeader
由两个参数组成:第一个是header名称
,第二个是header值
。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- AddResponseHeader=X-Response-Red, Blue
配置为:设置name为X-Response-Red
,value为Blue
;然后过滤器将该header
信息传递到下游服务的响应header
中。
测试:
7、RemoveResponseHeader
RemoveResponseHeader
是一个header名称
的参数,它是要在响应时被删除的标头的名称。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- RemoveResponseHeader=X-Response-Foo
配置为:在请求中,设置需要删除的header名称
;然后过滤器将该header
信息在返回到网关客户端之前从响应中删除标头。
测试:
8、SetResponseHeader
SetResponseHeader
由两个参数组成:第一个是header名称
,第二个是新的header值
。
yaml配置:
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://user-service
predicates:
- Path=/user/**
filters:
- SetRequestHeader=X-Request-Red, Blue
配置为:SetResponseHeader
将替换原有的header名称的值,在请求的header
中,设置name为X-Request-Red
,value为Blue
;然后过滤器将该header
信息在返回到网关客户端之前把原有Value值
替换为Blue
。
测试:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/18047.html