我在 Tomcat 7 中有一个 Web 应用程序,它将用户信息作为 DTO 对象保存在会话中。我还为我的项目启用了 Spring 安全性,如果用户没有会话,它会自动将用户重定向到登录页面。
如果我登录到我的应用程序一次,然后我在 Eclipse 中重新启动 Tomcat,那么会发生我的会话被刷新但 cookie 没有消失。
这意味着在服务器重新启动后,会话中没有 UserDto,但有效的 JSESSIONID 保留在浏览器中。因此,spring security 仍然认为用户已登录,而实际上他并未登录。
为什么会这样?(我已经通过在 Firefox 中查看页面信息来检查 JSESSIONID cookie 的类型,它说 - Expire: At end of session
。因此,理想情况下它应该在服务器重新启动时过期,还是不应该?)
编辑:虽然 Firefox 说Expire: At end of session
如果我关闭并重新启动 Firefox,cookie 仍然存在。