spring - Spring Security-如何使另一个用户注销

标签 spring spring-security

当我希望从应用程序中删除用户时,我也想注销该用户(只要他单击任何链接)。我可以通过以下方式清除自己的安全上下文:

SecurityContextHolder.getContext().setAuthentication(null);

但是我应该如何清除他的安全上下文?

最佳答案

SecurityContextHolder.getContext()。setAuthentication(null);将使当前 session 无效。

SecurityContextHolder.getContext()返回一个 session 范围的bean。因此,调用setAuthentication(null)将使当前用户的 session 无效。

因此,只要用户单击链接,他的 session 将失效,您只需从 Controller 调用此函数即可。

当然,您可能不想在所有 Controller 中分散代码来执行此操作。因此,您可以使用过滤器来代替。

在您的过滤器中,您可以保留一个单例bean,其中包含您要失效的所有用户名的列表。然后,您对照列表检查当前 session ,并决定是否使该 session 无效。

关于spring - Spring Security-如何使另一个用户注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11780460/

相关文章:

java - java bean 创建、hibernate 和 spa 的问题

java - Spring Security 记住我

java - 如何防止使用 Hibernate + JPA 执行不需要的更新语句

java - 如何返回用户拥有的角色列表?

spring - 是否可以在 ${...} 表达式中传递 NULL 作为参数?

java - Spring Social Facebook教程错误

java - 认证成功但授权失败时如何返回HTTP 403?

node.js - 使用 NodeJS,如何使用 Spring Security OAuth2 制作的 JWT 检索存储在 PostgreSQL 中的 session 信息?

java - 如果用户未登录,则将其重定向到登录页面

Spring Data Rest - 使用 Spring Security 过滤关联资源