在Spring Boot 2.2.0中如何处理x-forwarded-header?(反向代理后面的Spring Web MVC)

在Spring Boot 2.2.0中如何处理x-forwarded-header?(反向代理后面的Spring Web MVC),第1张

在Spring Boot 2.2.0中如何处理x-forwarded-header?(反向代理后面的Spring Web MVC)

使用Spring Boot <= 2.1.x,您必须提供

ForwardedHeaderFilter
-Bean。从Spring Boot
2.2.0开始,您不再需要这样做。只需添加
server.forward-headers-strategy=NATIVE
server.forward-headers-strategy=frameWORK
到您的
application.properties
-file。

NATIVE
表示Servlet容器(例如undertow,tomcat)正在解析
x-forwarded-*
-header,在大多数情况下都可以。如果依靠
X-Forwarded-Prefix
比你必须使用
frameWORK
,以便
request.getContextPath()
设置正确。


例:

  1. 用户输入浏览器:
    https://mydomain.tld/my-microservice/actuator
  2. 微服务“我的微服务”(例如用户服务)应处理该请求;它在localhost:8080上运行
  3. 反向代理转发请求是这样的:
// Forwarded-Request from Reverse Proxy to your microserviceGET http://localhost:8080/actuator/X-Forwarded-Host: mydomain.tldX-Forwarded-Proto: httpsX-Forwarded-Prefix: /my-microservice

调试到HttpServletRequest中将导致:

request.getRequestURL(): "https://mydomain.tld/my-microservice/actuator/"request.getScheme(): "https"request.getContextPath(): "/my-microservice"new UrlPathHelper().getPathWithinApplication(request): "/actuator"


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5122884.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存