我们将应用程序从 JBoss 5 迁移到 JBoss6,其中一个主要原因是利用了 servlet 3.0 的新特性。除了 JBoss 6 和 servlet 3.0 的一项新特性之外,一切都运行良好:将会话 cookie 设置为仅通过安全通道传输,即使请求是通过纯 HTTP 发出的。这对我们来说是一个非常重要的安全功能,通过添加
<secure>true</secure>
在 web.xml 中。这是我们 web.xml 的一部分:
<session-config>
<session-timeout>25</session-timeout>
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>
<tracking-mode>COOKIE</tracking-mode>
当我们删除
<secure>true</secure>
一切正常。当它在那里时,即使在安全页面 (HTTPS) 或不安全页面 (HTTP) 上,也会为每个请求生成一个新的 jsessionid。此外,登录不起作用,因为在使用安全凭据登录后,用户被重定向回登录页面。
我想这可能也是 Tomcat 7 的一个问题,因为它也使用 servlet 3.0 规范。任何建议将不胜感激。
问候