Tomcat:从HTTP重定向到HTTPS的问题
我正在对使用Struts并部署在Tomcat上的现有Web应用程序进行一些修改。当用户访问一个特定页面时,我试图使我的应用程序从HTTP重定向到HTTPS。为此,我添加了我的web.xml:
<security-constraint> <web-resource-collection>
<web-resource-name>secured page</web-resource-name>
<url-pattern>/secured.do</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
并到我的server.xml:
<Connector port="8443"maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile=".keystore"
keystorePass="password" />
而且有效。问题是,一旦用户重定向到HTTPS,即使他访问另一个常规页面,他也不会返回到HTTP。我的问题是,这种行为是否正常?前面提到的配置是否应该这样做?还是与导致此行为的应用程序相关?谢谢
回答:
是的,这是Tomcat上的正常行为。
一旦移至https,它将不会将其他URL重定向回http,除非该URL明确地用于http。
您可以尝试将其添加到中的非安全网址格式块中web.xml
,但这在https之后仍不会自动重定向到http。
<user-data-constraint><transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
如果 确实需要 ,则必须编写一个
Filter
检查URL是否不属于安全模式的一部分,然后重定向回http。
以上是 Tomcat:从HTTP重定向到HTTPS的问题 的全部内容, 来源链接: utcz.com/qa/412036.html