java - Spring Security - 需要在每次尝试登录时生成新的 session ID

标签 java session spring-security httprequest httpsession

我有一个使用 SpringSecurity 的应用程序。如果我尝试登录,失败,然后我再次尝试,我的问题就出现了。发生的情况是 sessionid 仍然相同,这会产生问题。我尝试过运行:

request.getSession(false).invalidate()
final HttpSession session = request.getSession(true)

当我这样做时,当我尝试登录时,我收到服务器错误,该错误没有记录在任何地方(我怀疑是 SpringSecurity 造成的......)。使用 SpringSecurity 时是否有办法在每个登录请求上强制创建一个新 session ?

最佳答案

您可能会遇到 NullPointerExceptions

request.getSession(false).invalidate();

因为当没有 session 时getSession返回null。因此,如果您在进行无效之前进行空检查,这可能会起作用。

HttpSession session = request.getSession(false);
if (session != null) {
    session.invalidate();
}

关于java - Spring Security - 需要在每次尝试登录时生成新的 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37184600/

相关文章:

java - 使用不同的构造函数参数并使用 Autowiring 创建同一类的 2 个 bean

java - 我应该在哪里验证用户是否有权访问资源?

java - 使用递归生成给定字符串的所有子字符串

java - 在 Java 中实现基本类型类型安全的最高效方法?

javascript - 使用 JavaScript 的 session_destroy()

php - 我应该如何在 PHP 的多个域之间安全地传输变量/参数?

java - Spring 类未找到

java - 在 java.net.URL 类型对象上执行条件查询的可能性和限制

java - 了解基本的 Java 特定面试问题

php - CORS 中的 Angular 应用程序丢失 session