Tomcat 7 重定向到 https 与 web.xml

标签 tomcat servlets https

我发现以下代码片段可以添加到我的 web.xml 中以强制请求重定向到 https:

<security-constraint>
        <web-resource-collection>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

这似乎应该可以完成工作,我的应用程序可以很好地将请求重定向到 https。

不过,网上推荐建议在server.xml中也这样做:

<Connector port="8080" enableLookups="false" redirectPort="8443" />

为什么我需要编辑 server.xml?我的应用程序可以在没有它的情况下运行,但是,我是否有一个未打开的安全漏洞?这会不会在未来造成不可预见的问题?

最佳答案

redirectPort 的默认值是8443所以这就是为什么你添加它时没有观察到任何变化。如果您想改为重定向到端口 443 , 你必须设置 redirectPort适本地,否则您的用户将被重定向到 host:8443 .

使用 CONFIDENTIAL导致 Tomcat 重定向和切换协议(protocol),并且 redirectPort指定将在 URL 中使用的端口号。您实际上必须同时指定( CONFIDENTIALweb.xml redirectPortserver.xml ),虽然 redirectPort通常已经做了你想做的事(如你所见)。

关于Tomcat 7 重定向到 https 与 web.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32028892/

相关文章:

java - 从 servlet 应用程序的 java 主类调用

java - 在 gwt 中从 Formpanel 接收数据

javascript - 为什么我的 https ://request cancelled and changed to http://, 导致混合请求错误?

http - 代理服务器在代理https请求时做了什么

java - Tomcat,网站无法访问

java - apache-tomcat-9.0.0.M10 : Change Context-Path in META-INF/context. xml 不工作

tomcat - 为什么 Tomcat 为 "bonus"上下文提供与部署的 Web 应用程序同名的路径?

java - Cometd如何动态创建和订阅 channel ?

node.js - 将我的 SSL key 和证书文件传递给 Socket.IO 是否安全?

java - CAS 在 tomcat 上获取 Oracle APEX 的属性