【发布时间】:2016-05-23 20:41:17
【问题描述】:
我正在使用 Spring Security 开发一个 Java 应用程序。
我想避免会话固定,但在文档中找到的会话固定解决方案似乎没有按预期工作...here
所以,我在登录时这样做了
final HttpSession session = request.getSession(false);
if (session != null && !session.isNew()) {
session.invalidate();
}
效果很好,每次调用登录页面时都会更改 JSESSIONID...
但是一旦我登录后,我可以再次调用登录页面,获取另一个 JSESSIONID 并且仍然处于登录状态,我只需单击返回按钮并返回登录用户区域。
它确实改变了 JSESSIONID,我的问题是,它不应该有更大的影响吗?比如使我的会话无效或注销我?
当我调用注销表单时,它确实会注销用户并按预期工作,我只是想知道更改 JSESSIONID 是否有实际效果或无关紧要。
有什么想法吗?
我正在使用安全 3.2
【问题讨论】:
-
Spring 安全does that automatically。你想在这里实现什么?恕我直言,但您似乎不具备实现安全性所需的知识,因此谨慎地依赖经过尝试和测试的代码。
-
您好,在我的应用程序中它不会自动完成,我尝试实现它但可能做得不好,知道怎么做吗?
标签: java spring session spring-security