可能答案很简单:如何在 spring security 中手动注销当前登录的用户?调用是否足够:
SecurityContextHolder.getContext().getAuthentication().setAuthenticated(false);
?
原文由 Erik 发布,翻译遵循 CC BY-SA 4.0 许可协议
可能答案很简单:如何在 spring security 中手动注销当前登录的用户?调用是否足够:
SecurityContextHolder.getContext().getAuthentication().setAuthenticated(false);
?
原文由 Erik 发布,翻译遵循 CC BY-SA 4.0 许可协议
我很难确定您的代码是否足够。然而,标准 Spring-security 的注销实现是不同的。如果你看一下 SecurityContextLogoutHandler
你会看到他们这样做:
SecurityContextHolder.clearContext();
此外,他们还可以选择使 HttpSession 无效:
if (invalidateHttpSession) {
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
}
您可能会 在有关在 Spring Security 中注销的其他一些问题中 找到更多信息,并查看 org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler
的源代码。
原文由 Grzegorz Oledzki 发布,翻译遵循 CC BY-SA 4.0 许可协议
8 回答6.2k 阅读
3 回答2.6k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
1.9k 阅读
2 回答1.2k 阅读
1 回答937 阅读
在 Servlet 3.0 容器中,Spring 注销功能与 servlet 集成在一起,您只需在
logout()
HttpServletRequest
。仍然需要编写有效的响应内容。根据 文档(Spring 3.2):