Spring Cloud Gateway 过滤器工厂之AddRequestHeader

前言

Spring Cloud Gateway的路由过滤器允许以某种方式修改传入的HTTP请求或输出的HTTP响应。只作用于特定的路由。Spring Cloud Gateway中内置了很多的过滤器工厂。通过目前的文档,我看到了内置的数量为20个,今天我们来学习第一个过滤器工厂AddRequestHeader GatewayFilter Factory。通过名称我们可以快速的明白这个过滤器工厂的作用,就是添加请求头。

文档地址:http://cloud.spring.io/spring-cloud-gateway/single/spring-cloud-gateway.html

使用示例:

spring:
  application:
    name: zoo-plus-gateway
  cloud:
    gateway:
      routes:
        - id: zoo-plus-test
          uri: lb://zoo-plus-test
          predicates:
            - Path=/test/**
          filters:
            - AddRequestHeader=name, xiefei
            - StripPrefix=1

上面的配置,我们针对zoo-plus-test这个服务的路由配置了AddRequestHeader,增加了一个名称为name,值是xiefei的请求头。

这样配置之后,在zoo-plus-test服务中的所有接口,都可以通过request来获取到name请求头的信息,代码如下:

    @GetMapping("master")
    public Resp master(HttpServletRequest request) {
        String name = request.getHeader("name");
        System.out.println(name);
        return Resp.ok(name);
    }

传递多个请求头

filters:
        - AddRequestHeader=name, xiefei
        - AddRequestHeader=name2, xiefei

配置2个过滤器就行了,是不支持一个过滤器配置多个请求头的方式,原因我们通过源码可以得出,请看源码:

NameValueConfig就2个字段,一个name,一个value,对应的也就是请求头的名称和值。

类似的工厂类还有AddRequestParameter和AddResponseHeader,RemoveRequestHeader,RemoveResponseHeader,这几个就不做单独讲解了,使用方式是一样的。一个是添加请求参数,一个是添加响应的请求头.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值