我已经在使用Tomcat 6服务器上的基于servlet web应用程序的运行。 该URL方案是HTTPS。 整个网站目前正在担任HTTPS。 但我真的很想做的是建立HTTPS只有像购买和登录某些操作。 是否有任何Tomcat的配置,可以帮助我轻松地做到这一点?
是否有跨HTTPS和HTTP会话持久化需要修改任何代码?
我已经在使用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),你不应该有分享,因为Tomcat的HTTP和HTTPS之间的会话不加“安全”标志的饼干任何问题。