使用HTTPS仅适用于基于servlet web应用程序的某些页面
题
我的Tomcat 6服务器上运行一个servlet基于web应用。该URL方案是HTTPS。整个网站目前正在担任HTTPS。但我真的很想做的是建立HTTPS只有像购买和登录某些操作。是否有任何Tomcat的配置,可以帮助我做到这一点很容易?
是否有跨HTTPS和HTTP?
保留会话所需的任何代码更改解决方案
真的,理想情况下,这是在你的web应用程序的web.xml文件中进行配置。您只需指定特定的网址,应该是安全的,因为<security-constraint><web-resource-collection>
并指定HTTPS要求与<transport-guarantee>
的价值CONFIDENTIAL
。容器将管理透明重定向。简单。
<security-constraint>
<web-resource-collection>
<web-resource-name>My Secure Stuff</web-resource-name>
<url-pattern>/some/secure/stuff/*</url-pattern>
<url-pattern>/other/secure/stuff/*</url-pattern>
...
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
其他提示
您只需要设置一个HTTP连接器和所有你的servlet将可以在HTTP也。
有关操作需要HTTPS,则需要执行这个自己这个样子,
if (!request.isSecure()) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
在我们的情况下,登录URL可以由用户键入的,所以我们将用户重定向到HTTPS页面,如果输入HTTP URL。
如果你正在谈论的Servlet会话(JSESSIONID),你不应该有任何问题,共享HTTP和HTTPS之间的会话,因为Tomcat不加“安全”标志的饼干。
不隶属于 StackOverflow