spring security - 如何让其他用户注销

时间:2012-08-02 15:06:55

标签: spring spring-security

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

SecurityContextHolder.getContext().setAuthentication(null);

但我应该如何清除他的安全背景?

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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