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

《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

测试:
在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一恍过去

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值