Springcloud gateway过滤器

本文是关于Springcloud gateway过滤器的学习笔记,介绍了常用工厂。包括头部拦截、请求参数拦截、路径拦截、状态拦截、重定向拦截和重试拦截等,详细说明了各拦截类型对应的过滤器工厂及其功能和参数设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Springcloud gateway过滤器

学习中笔记


在这里插入图片描述

常用工厂介绍

1、 healder头部拦截

  • AddRequestHeaderGatewayFilterFactory
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - AddRequestHeader=authorization_code, Bearer

这将为所有匹配请求的下游请求标头添加authorization_code:Bearer头。

  • RemoveRequestHeaderGatewayFilterFactory
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - RemoveResponseHeader=authorization_code, Bearer

这将为所有匹配请求的下游请求标头删除authorization_code:Bearer头。

  • AddResponseHeaderGatewayFilterFactory:AddResponseHeader
    这将为所有匹配请求的下游响应标头删除authorization_code:Bearer头。
  • RemoveResponseHeaderGatewayFilterFactory:RemoveResponseHeader
  • SetRequestHeaderGatewayFilterFactory:SetRequestHeader
  • SetResponseHeaderGatewayFilterFactory:SetResponseHeader
  • PreserveHostHeaderGatewayFilterFactory:PreserveHostHeader
    没有参数。 此过滤器设置路由过滤器将检查的请求属性,以确定是否应发送原始主机头,而不是http客户端确定的主机头。
  • RequestHeaderToRequestUriGatewayFilterFactory:RequestHeaderToRequestUri
    当请求路由地址时,会根据设置参数来进行新的url路由

2、Parameter请求参数拦截

  • AddRequestParameterGatewayFilterFactory
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - AddRequestParameter=user, admin

这会将user= admin添加到下游请求的所有匹配请求的查询字符串中。

3、Path路径拦截

  • PrefixPathGatewayFilterFactory
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - PrefixPath=/root

这将使/root作为所有匹配请求的路径。将被路由到http://127.0.0.1:8086/root/**

  • RewritePathGatewayFilterFactory
    采用路径正则表达式参数和替换参数。
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - RewritePath=/wx-pa-api/(?<segment>.*), /$\{segment}

访问路径/wx-pa-api/root/getTest将被路由到/root/getTest

  • SetPathGatewayFilterFactory
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          predicates:
            - Path=/wx-pa-api/root/getTest
          filters:
            - SetPath=/root/getTest

访问路径/wx-pa-api/root/getTest将被路由到/root/getTest

  • StripPrefixGatewayFilterFactory
    StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - StripPrefix=1

去除第一个路径

4、status状态拦截

  • SetStatusGatewayFilterFactory
    采用单个状态参数。 它必须是有效的Spring HttpStatus。 它可以是整数值404或枚举NOT_FOUND的字符串表示。
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - SetStatus=401

匹配的路由状态都将成为401

5、redirect重定向拦截

  • RedirectToGatewayFilterFactory
    采用status和url参数。状态应该是300系列重定向http代码,例如301。url应该是有效的URL。这将是Location标头的值。
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - RedirectTo=301, http://127.0.0.1:8080

6、retry重试拦截

  • RetryGatewayFilterFactory
    retries: 重试次数
    statuses: 应该重试的HTTP状态代码
    methods: 应该重试的HTTP方法
    series: 要重试的一系列状态代码
spring:
  cloud:
    gateway:
      routes:
        - id: wx-pa-api
          uri: http://127.0.0.1:8086
          filters:
            - name: Retry
              args:
                retries: 3
                statuses: NOT_FOUND

以上配置如果返回404错误则进行三次重试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值