在 Spring-Session (Redis) 和 Spring-security 中注销用户而不使会话无效?
Logout user in Spring-Session (Redis) and Spring-security without invalidating session?
在切换到 spring-session 之前 How to correctly logout user in spring security 工作正常。我们不想在用户注销后使会话失效。
但是在redis开始使用spring-session后,用户没有被注销。我现在需要使用 new SecurityContextLogoutHandler().logout(request, response, authentication);
这会导致会话失效。有没有办法在不使会话无效的情况下注销用户?
这似乎是 Spring 安全注销机制中的 bug。要解决此问题,您可以使用:
SecurityContextHolder.clearContext();
请注意解决您应避免调用的问题
SecurityContextHolder.getContext().setAuthentication(null);
在切换到 spring-session 之前 How to correctly logout user in spring security 工作正常。我们不想在用户注销后使会话失效。
但是在redis开始使用spring-session后,用户没有被注销。我现在需要使用 new SecurityContextLogoutHandler().logout(request, response, authentication);
这会导致会话失效。有没有办法在不使会话无效的情况下注销用户?
这似乎是 Spring 安全注销机制中的 bug。要解决此问题,您可以使用:
SecurityContextHolder.clearContext();
请注意解决您应避免调用的问题
SecurityContextHolder.getContext().setAuthentication(null);