使用HTTPS仅适用于基于servlet web应用程序的某些页面(Use HTTPS only f

2019-08-02 12:10发布

我已经在使用Tomcat 6服务器上的基于servlet web应用程序的运行。 该URL方案是HTTPS。 整个网站目前正在担任HTTPS。 但我真的很想做的是建立HTTPS只有像购买和登录某些操作。 是否有任何Tomcat的配置,可以帮助我轻松地做到这一点?

是否有跨HTTPS和HTTP会话持久化需要修改任何代码?

Answer 1:

真的,理想情况下,这是在你的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>


Answer 2:

你只需要设置一个HTTP连接器和所有你的servlet将可以在HTTP也。

对于需要HTTPS操作,您需要把这个强制自己这个样子,

if (!request.isSecure()) {
    response.sendError(HttpServletResponse.SC_FORBIDDEN);
    return;
}

在我们的情况下,登录URL可以由用户,所以我们将用户重定向到HTTPS页面,如果输入HTTP URL类型英寸

如果你正在谈论的Servlet会话(JSESSIONID),你不应该有分享,因为Tomcat的HTTP和HTTPS之间的会话不加“安全”标志的饼干任何问题。



文章来源: Use HTTPS only for certain pages in servlet based webapp