spring security - 如何让另一个用户注销

Posted

技术标签:

【中文标题】spring security - 如何让另一个用户注销【英文标题】:spring security - how to make another user log out 【发布时间】:2012-07-31 14:25:54 【问题描述】:

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

SecurityContextHolder.getContext().setAuthentication(null);

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

【问题讨论】:

***.com/questions/8478188/… 【参考方案1】:

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

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

因此,当用户单击链接时,您可以从控制器中调用它,并且他的会话将失效。

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

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

【讨论】:

以上是关于spring security - 如何让另一个用户注销的主要内容,如果未能解决你的问题,请参考以下文章

如何导入 Spring Security OAuth 授权服务器?

spring-security 如何使用用户名或邮箱登录

Spring Security对Android客户端如何实现权限管理

Spring Security:如何获取自动渲染的登录页面代码?

如何使用 AuthenticationProvider Spring Security?

如何将 Spring Security 从 ldap 更改为 ldap starttls