Tomcat可以为HTTPS请求提供单独的(或仅HTTPS)会话吗?

时间:2010-03-23 15:14:54

标签: java session tomcat https

我有一个包含安全(SSL)和非安全页面的Web应用程序。

用户可以登录该站点,并且必须在SSL和非SSL区域中显示为已登录。

(注意:SSL不是通过Tomcat实现的,而是通过位于Tomcat前面的Apache HTTPD服务器实现的 - 所以Tomcat没有SSL配置。)

登录状态目前通过servlet会话维护(使用Tomcat的vanilla会话管理)。

这种方法的一个明显问题是JSESSIONID cookie是通过HTTP和HTTPS连接传输的,这意味着它有可能拦截它并劫持会话。

如果没有滚动我们自己的会话管理,是否有任何解决方案(即Tomcat是否适应这种情况)?

我准备实施自己的会话管理,但不想重新发明可能已经支持的内容。

1 个答案:

答案 0 :(得分:3)

你说SSL是在Apache服务器上实现的,而不是传递给Tomcat,所以Tomcat将整个旅程视为HTTP?如果是这样,Tomcat将不会创建单独的JSESSIONID,因为它不知道HTTPS。

您可以检查request.getUserPrincipal()以查看用户是否已登录。