> 文档中心 > Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

目录

  • 1、AddRequestHeader
  • 2、RemoveRequestHeader
  • 3、SetRequestHeader
  • 4、AddRequestParameter
  • 5、RemoveRequestParameter
  • 6、AddResponseHeader
  • 7、RemoveResponseHeader
  • 8、SetResponseHeader

《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中。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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信息在传递到下游服务之前将其删除。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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中。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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的参数;然后过滤器将该组参数传递到下游服务中。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

5、RemoveRequestParameter

RemoveRequestParameter是一个指定参数名称的参数,它是要删除的查询参数的名称。
yaml配置:

spring:  cloud:    gateway:   routes: - id: user-service   uri: lb://user-service   predicates:     - Path=/user/**   filters: - RemoveRequestParameter=color

配置为:在请求中,设置需要删除的参数名称;然后过滤器将该参数信息在传递到下游服务之前将其删除。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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中。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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信息在返回到网关客户端之前从响应中删除标头。

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂

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

测试:
Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂