HttpHeadersFilter在将请求发送到下游之前应用于请求,例如在NettyRoutingFilter中。
1、 Forwarded Headers Filter
Forwarded Headers Filter创建一个Forwarded标头以发送到下游服务。它将当前请求的Host标头、scheme和端口添加到任何现有的Forwarded标头中。
2、RemoveHopByHop Headers Filter
RemoveHopByHop Headers Filter从转发的请求中删除标头。被删除的头的默认列表来自IETF。
默认删除的标头为:
-
Connection
-
Keep-Alive
-
Proxy-Authenticate
-
Proxy-Authorization
-
TE
-
Trailer
-
Transfer-Encoding
-
Upgrade
要更改此设置,请将spring.cloud.gateway.filter.remove-hop-by-hop.headers属性设置为要删除的标头名称列表。
3、XForwarded Headers Filter
XForwarded Headers Filter创建各种X-Forwarded-*头,发送到下游服务。它使用当前请求的主机标头、scheme、端口和路径来创建各种标头。
单个标头的创建可以由以下布尔属性控制(默认为true):
-
spring.cloud.gateway.x-forwarded.for-enabled
-
spring.cloud.gateway.x-forwarded.host-enabled
-
spring.cloud.gateway.x-forwarded.port-enabled
-
spring.cloud.gateway.x-forwarded.proto-enabled
-
spring.cloud.gateway.x-forwarded.prefix-enabled
附加多个标头可以由以下布尔属性控制(默认为true):
-
spring.cloud.gateway.x-forwarded.for-append
-
spring.cloud.gateway.x-forwarded.host-append
-
spring.cloud.gateway.x-forwarded.port-append
-
spring.cloud.gateway.x-forwarded.proto-append
-
spring.cloud.gateway.x-forwarded.prefix-append