栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Cloud Gateway配置详解-过滤器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Cloud Gateway配置详解-过滤器

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种过滤器

在这里为大家一一介绍:

序号过滤器作用参数名参数值示例(filters配置)备注
1AddRequestHeader添加请求头name,value添加的请求头及其值AddRequestHeader=X-Request-red, blue
2AddRequestParameter在Query String中添加请求参数,参数值可以是变量,具体值可以从PATH或Host中匹配name,value添加的参数名及其值AddRequestParameter=foo, bar-{segment}
3AddResponseHeader添加响应头name,value添加的响应头及其值AddResponseHeader=X-Response-Red, Blue
4DedupeResponseHeader过滤重复响应头name,strategy需要过滤的响应头及策略(保留第一个,保留最后一个,保留唯一值)DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin
5CircuitBreaker熔断器name,fallbackUri,statusCodes熔断器名称、熔断后的默认URI、熔断触发状态- CircuitBreaker=myCircuitBreaker使用熔断器需配置spring-cloud-starter-circuitbreaker-reactor-resilience4j,详见Resilience4J documentation
6FallbackHeaders指定发生熔断时fallback响应头executionExceptionTypeHeaderName, executionExceptionMessageHeaderName, rootCauseExceptionTypeHeaderName, rootCauseExceptionMessageHeaderName异常类型、详情、根因类型、根因详情等响应头名称executionExceptionTypeHeaderName: Test-Header
7MapRequestHeader添加新的请求头,值从已有请求头中获取fromHeader,toHeader已有请求头名称,新请求头名称MapRequestHeader=Blue, X-Request-Red
8PrefixPath请求路径增加前缀prefix需增加的前缀PrefixPath=/mypath
9PreserveHostHeader配置是否将原始请求头发送到服务方--PreserveHostHeader
10RequestRateLimiter请求频度控制--默认提供了基于Redis的频度控制过滤器,也可以自定义
11RedirectTo重定向过滤器status,url重定向http status及重定向后的urlRedirectTo=302, https://acme.org
12RemoveRequestHeader删除请求头name待删除的请求头RemoveRequestHeader=X-Request-Foo
13RemoveResponseHeader删除响应头name待删除的响应头RemoveResponseHeader=X-Response-Foo
14RemoveRequestParameter删除请求参数name待删除的请求参数名RemoveRequestParameter=red
15RewritePath重写PATHregexp,replacement重写部分匹配规则,需替换的值RewritePath=/red/?(?.*), /${segment}匹配规则采用正则表达式,替换值支持从匹配中获取
16RewriteLocationResponseHeader重写响应头中的LocationstripVersionMode, locationHeaderName, hostValue, protocolsRegexpath中version处理模式,location响应头名称,host值,url协议头RewriteLocationResponseHeader=AS_IN_REQUEST, Location, ,
17RewriteResponseHeader重写响应头name,regexp,replacement响应头名称,需修改值的匹配规则,需替换的值RewriteResponseHeader=X-Response-Red, , password=[^&]+, password=***
18SaveSession强制触发WebSession::save--SaveSession
19SecureHeaders添加一组安全相关的头信息到响应中--SecureHeaders
20SetPath设置请求pathtemplatepath模板SetPath=/{segment}
21SetRequestHeader设置请求头(不添加新的)name,value请求头及其值SetRequestHeader=X-Request-Red, Blue
22SetResponseHeader设置响应头(不添加新的)name,value响应头及其值SetResponseHeader=X-Response-Red, Blue
23SetStatus设置响应状态status响应状态SetStatus=401
24StripPrefix截断请求PATHparts需截断的长度(’/'个数)StripPrefix=2
25Retry重试过滤器---详细配置
26RequestSize限流器maxSize请求最大报文大小maxSize: 5000000
27SetRequestHostHeader设置请求hosthost分组及权重SetRequestHostHeader=example.org
28ModifyRequestBody修改请求报文---只能通过 Java DSL 配置
29ModifyResponseBody修改响应报文---只能通过 Java DSL 配置
30TokenRelay配合OAuth2使用--TokenRelay=
31CacheRequestBody根据权重进行路由bodyClass请求体类型-详细配置
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号