据我了解,当用户登录Spring Security时会使Session失效并创建一个新会话。
因此,如果我来自具有明确sessionID cookie的http,Spring Security应该设置一个新的sessionID'安全'cookie,只有在后续的https请求中才会被浏览器发回。
我缺少的是当'登录'用户从https切换到http时,必须有一个sessionID cookie作为非安全cookie存储在某处以跟踪会话。
我不明白Spring如何管理它
用户登录后,如果他浏览到http,则清除sessionID cookie与安全SessionID相同,是否对全世界可见?有人可以阅读并劫持会议
我不明白Spring Security流程能否有人解释我它是如何工作的?
谢谢
答案 0 :(得分:0)
出于上述原因,最好不要混用HTTP和HTTPS会话。事实上它似乎通过HTTPS登录然后回退到HTTP不会工作(因为浏览器不会发送安全的会话cookie)。
[...]会话已创建 在HTTPS下,为其进行会话 cookie被标记为“安全”,不能 随后在HTTP下使用。该 浏览器不会发回cookie 到服务器和任何会话状态 将丢失(包括安全 上下文信息)。开始了 HTTP中的会话首先应该工作 会话cookie不会被标记为 安全(您还必须禁用 Spring Security的会话修复 保护支持,以防止它 在登录时创建新的安全会话 (您始终可以创建新会话 你自己在后期)。注意 在HTTP和HTTPS之间切换 一般来说,这不是一个好主意 完全使用HTTP的应用程序 容易受到中间人的影响 攻击。为了真正安全,用户 应该开始访问您的网站 HTTPS并继续使用它直到它们 登出。甚至点击HTTPS 来自通过HTTP访问的页面的链接是 潜在的风险。
来自http://static.springsource.org/spring-security/site/faq.html