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

导读:本篇文章讲解 Gateway(四)Spring Cloud Gateway过滤器(GatewayFilter)工厂,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

《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

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!