0
点赞
收藏
分享

微信扫一扫

【网关】spring cloud gateway内置过滤器

【网关】spring cloud gateway内置过滤器_请求头

【网关】spring cloud gateway内置过滤器_请求头_02

Parameter类过滤器 

AddRequestHeader

增加请求头信息,并传递到下游;

- AddRequestHeader=name, value

spring:
cloud:
gateway:
routes:
- id: add_request_header_route
uri: http://example.org
filters:
- AddRequestHeader=name, value

RemoveResponseHeader

传递下游前,移除请求头属性;

- RemoveResponseHeader=name

spring:
cloud:
gateway:
routes:
- id: removeresponseheader_route
uri: http://example.org
filters:
- RemoveResponseHeader=name

AddResponseHeader

增加请求头信息,并传递到下游;

- AddResponseHeader=name, value

spring:
cloud:
gateway:
routes:
- id: add_request_header_route
uri: http://example.org
filters:
- AddResponseHeader=name, value

RemoveResponseHeader

传递下游前,移除头信息中某个属性;

- RemoveResponseHeader=name

spring:
cloud:
gateway:
routes:
- id: removeresponseheader_route
uri: http://example.org
filters:
- RemoveResponseHeader=name

SetRequestHeader

当请求经过网关转发时,该过滤器将会用给定的名字替换对应的头部信息;

- SetRequestHeader=name, value

spring:
cloud:
gateway:
routes:
- id: setresponseheader_route
uri: http://example.org
filters:
- SetRequestHeader=name, value

SetResponseHeader

当请求经过网关转发时,该过滤器将会用给定的名字替换对应的头部信息;

- SetResponseHeader=name, value

spring:
cloud:
gateway:
routes:
- id: setresponseheader_route
uri: http://example.org
filters:
- SetResponseHeader=name, value

PreserveHostHeader

PreserveHostHeader GatewayFilter Factory没有参数。此过滤器设置路由过滤器将检查的请求属性,以确定是否应发送原始主机头,而不是http客户端确定的主机头。

- PreserveHostHeader

spring:
cloud:
gateway:
routes:
- id: preserve_host_route
uri: http://example.org
filters:
- PreserveHostHeader

RequestHeaderToRequestUri

当请求 http://example.org 时,会根据X-New-Url来进行新的url路由;

- RequestHeaderToRequestUri=X-New-Url

spring:
cloud:
gateway:
enabled: true
discovery:
locator:
enabled: true
routes:
- id: request_header_to_request_uri_route
uri: http://example.org
filters:
- RequestHeaderToRequestUri=X-New-Url

AddRequestParameter

修改请求内容中的某个属性值;name,value

spring:
cloud:
gateway:
routes:
- id: add_request_parameter_route
uri: http://example.org
filters:
- AddRequestParameter=name, value

Path类过滤器 

PrefixPath

将所有请求路径前加上路径;value

- PrefixPath=value

spring:
cloud:
gateway:
routes:
- id: prefixpath_route
uri: http://example.org
filters:
- PrefixPath=value

RewritePath

利用路径正则表达式灵活替换请求路径

spring:
cloud:
gateway:
routes:
#插件请求转发
#(?<segment>/?.*):匹配 /任意字符,此处/出现0次或1次。将匹配到的结果捕获到名称为segment的组中
#$\{segment}:将 segment所捕获到的文本置换到此处,注意,\的出现是由于避免yaml认为这是一个变量,在gateway进行解析时,会被替换为${segment}
- id: "ms-api-gateway"
uri: "lb://ms-api-gateway"
predicates:
- Path=/isv/mini/common/**
filters:
- RewritePath=/isv(?<segment>/?.*), /isv/ms/app$\{segment}

SetPath

SetPath GatewayFilter Factory采用路径模板参数。它提供了一种通过允许模板化路径段来操作请求路径的简单方法。这使用了Spring Framework中的uri模板。允许多个匹配的段。

- SetPath=/{segment}

spring:
cloud:
gateway:
routes:
- id: setpath_route
uri: http://example.org
predicates:
- Path=/foo/{segment}
filters:
- SetPath=/{segment}

StripPrefix

StripPrefix网关过滤器工厂采用一个参数StripPrefix。StripPrefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。

- StripPrefix

spring:
cloud:
gateway:
routes:
- id: nameRoot
uri: http://nameservice
predicates:
- Path=/name/**
filters:
- StripPrefix=1

Status类过滤器 

SetStatus

当某个路径下所有响应都是设置的这个状态码;状态码可以是代码或者数字,org.springframework.http.HttpStatus

- SetStatus

spring:
cloud:
gateway:
routes:
- id: setstatusstring_route
uri: http://example.org
filters:
- SetStatus=BAD_REQUEST
- id: setstatusint_route
uri: http://example.org
filters:
- SetStatus=401

Session类过滤器 

SaveSession

SaveSession GatewayFilter Factory在转发下游调用之前强制执行WebSession :: save操作。当使用Spring Session与懒加载数据存储之类的东西时,这是特别有用的,并且需要确保在转发调用之前已保存会话状态。

spring:
cloud:
gateway:
routes:
- id: save_session
uri: http://example.org
predicates:
- Path=/foo/**
filters:
- SaveSession

如果要将Spring Security与Spring Session集成,并且希望确保将安全性详细信息转发到远程进程,则这很关键。

Redirect类过滤器

RedirectTo

  RedirectTo GatewayFilter Factory采用status和url参数。状态应该是300系列重定向http代码,例如301. url应该是有效的URL。这将是Location标头的值。

spring:
cloud:
gateway:
routes:
- id: prefixpath_route
uri: http://example.org
filters:
- RedirectTo=302, http://acme.org

将发送带有Location:http://acme.org 的请求头属性且状态302的请求,以执行重定向。

Retry类过滤器 

RetryGatewayFilterFactory

  该过滤器有三个参数:

  retries: 重试次数;
 statuses: 应该重试的HTTP状态代码,使用org.springframework.http.HttpStatus表示;
 methods: 应该重试的HTTP方法,使用org.springframework.http.HttpMethod表示;
 series: 要重试的一系列状态代码,使用org.springframework.http.HttpStatus.Series表示;

  多个参数已args开头:

spring:
cloud:
gateway:
routes:
- id: retry_test
uri: http://localhost:8080/flakey
predicates:
- Host=*.retry.com
filters:
- name: Retry
args:
retries: 3
statuses: BAD_GATEWAY


【网关】spring cloud gateway内置过滤器_spring_03


举报

相关推荐

0 条评论