优秀的编程知识分享平台

网站首页 > 技术文章 正文

Spring Cloud Gateway配置详解-过滤器

nanyue 2025-03-10 18:56:26 技术文章 1 ℃

Spring Cloud Gateway-过滤器

本节将为大家详细介绍Spring Could Gateway 内置过滤器的相关内容。

Spring Cloud Gateway 过滤器为大家提供了修改特定路由中的http请求和响应的能力,默认提供了31种过滤器,基本满足大家的各种场景需求.

基本配置

过滤器的配置分为两种方式,一种是通过配置文件的方式(此方式有简化配置模式及详细配置模式两种,同断言,不再详述),一种是通过编码的方式。

配置文件(摘自官方文档):

spring:
  cloud:
    gateway:
      routes:
      - id: resource
        uri: http://localhost:9000
        predicates:
        - Path=/resource
        filters:
        - TokenRelay=

编码方式(摘自官方文档):

@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
    return builder.routes()
            .route("resource", r -> r.path("/resource")
                    .filters(f -> f.tokenRelay())
                    .uri("http://localhost:9000"))
            .build();
}

配置全局过滤器:

spring:
  cloud:
    gateway:
      default-filters:
      - AddResponseHeader=X-Response-Default-Red, Default-Blue
      - PrefixPath=/httpbin

内置31种过滤器

在这里为大家一一介绍:

  1. AddRequestHeader :添加请求头
  2. AddRequestParameter:在Query String中添加请求参数,参数值可以是变量,具体值可以从PATH或Host中匹配
  3. AddResponseHeader:添加响应头
  4. DedupeResponseHeader:过滤重复响应头
  5. CircuitBreaker:熔断器
  6. FallbackHeaders:指定发生熔断时fallback响应头
  7. MapRequestHeader:添加新的请求头,值从已有请求头中获取
  8. PrefixPath:请求路径增加前缀
  9. PreserveHostHeader:配置是否将原始请求头发送到服务方
  10. RequestRateLimiter:请求频度控制,默认提供了基于Redis的频度控制过滤器,也可以自定义
  11. RedirectTo:重定向过滤器
  12. RemoveRequestHeader:删除请求头
  13. RemoveResponseHeader:删除响应头
  14. RemoveRequestParameter:删除请求参数
  15. RewritePath:重写PATH
  16. RewriteLocationResponseHeader:重写响应头中的Location
  17. RewriteResponseHeader:重写响应头
  18. SaveSession:强制触发WebSession::save
  19. SecureHeaders:添加一组安全相关的头信息到响应中
  20. SetPath:设置请求path
  21. SetRequestHeader:设置请求头(不添加新的)
  22. SetResponseHeader:设置响应头(不添加新的)
  23. SetStatus:设置响应状态
  24. StripPrefix:截断请求PATH
  25. Retry:重试过滤器
  26. RequestSize:限流器
  27. SetRequestHostHeader:设置请求host
  28. ModifyRequestBody:修改请求报文
  29. ModifyResponseBody:修改响应报文
  30. TokenRelay:配合OAuth2使用
  31. CacheRequestBody:根据权重进行路由
最近发表
标签列表