gpt4 book ai didi

java - 在 Java Web 应用程序中处理 X-FORWARDED-PROTO header

转载 作者:太空狗 更新时间:2023-10-29 23:04:04 27 4
gpt4 key购买 nike

任何人都可以指导我使用 X-FORWARDED-PROTO 吗?部署到 Apache Tomcat 的 Java Web 应用程序中的 header 。

应用程序设置的方式是 tomcat 与 Apache 网络服务器对话,后者又与 Cisco Load Balancer 对话,最后平衡器将页面发布到客户端(tomcat -> apache2 -> 负载平衡器 -> 客户端)。

SSL 证书安装在负载均衡器中,它正在处理 HTTPS 请求。我的要求是使应用程序以使用 X-FORWARDED-PROTO 并将页面更改为 HTTP 或 HTTPS 的方式运行。

检查我网页的 header 文件时,我找不到 X-FORWARDED-PROTO header 。我也无权访问负载均衡器配置,IT 部门建议我们使用 X-FORWARDED-PROTO 来区分 HTTP 和 HTTPS 请求。

是否需要在 Tomcat 或 Apache 级别进行任何配置,以便返回 X-FORWARDED-PROTO header ?还是应该在Load Balancer中处理配置?

最佳答案

我很确定你现在已经弄明白了,但我还是会添加答案。

你可以在tomcat的conf/server.xml的引擎标签中使用类org.apache.catalina.valves.RemoteIpValve

    <Valve className="org.apache.catalina.valves.RemoteIpValve"
internalProxies="192.168.1.XXX"
remoteIpHeader="x-forwarded-for"
remoteIpProxiesHeader="x-forwarded-by"
protocolHeader="x-forwarded-proto"
/>

需要注意的是设置internalProxies 值非常重要。如果未设置并且您使用的是非标准网络设置,则可能会导致 tomcat 不会检查 x-forwarded header 并且默认为“http”的问题。出于安全原因,我建议设置它,即使它使用默认值也是如此。

here了解更多信息。

关于java - 在 Java Web 应用程序中处理 X-FORWARDED-PROTO header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5741210/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com