【发布时间】:2019-01-14 18:10:17
【问题描述】:
我正在研究一个网站同时存在于 HTTP 和 HTTPS 上的场景。
当用户登录到 HTTPS 站点时,JSESSIONID 的“安全”cookie 会存储在浏览器中。如果用户关闭浏览器并返回 - 这次希望使用 HTTP 登录 - 用户无法登录,因为浏览器不会在浏览器中存储新的“不安全”JSESSIONID,也不会发送先前存储的安全cookie 到服务器。
我的问题是:
有没有一种方法,当用户使用 HTTP 登录时,服务器可以发送新的“不安全”cookie,从而将现有的“安全”cookie 转换为具有新值的“不安全”cookie?
有没有办法让 Tomcat 在安全和不安全连接中为 JSESSIONID 使用不同的 cookie 名称?
我试图在互联网上查找 - 但似乎没有办法做到这一点。在这种情况下,最终用户可能会认为该站点无法正常工作。
注意: 是的,我们可以强制用户始终使用 HTTPS。事实上,这正是我们正在努力做的。但是,我们在 Web 应用程序中有一个选项可以禁用 HTTPS。所以,这就是正在发生的事情——用户认为“这个应用程序强迫我使用 HTTPS,我不想使用它。让我禁用它”。要禁用 HTTPS,用户以 HTTPS 版本登录站点,禁用 HTTPS 端口 - 这会触发服务器重新启动。用户现在访问 HTTP 站点 - 但她无法登录,因为用户从未退出 HTTPS 会话 - 并且这些 cookie 仍然存在。这被视为可用性问题,我正在尝试解决此问题。
【问题讨论】:
标签: tomcat cookies session-cookies