我的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不加“安全”标志的饼干。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top