3

When I wish to remove a user from my application, I also want to log him out (as soon as he clicks on any link). I can clear my own security context by :

SecurityContextHolder.getContext().setAuthentication(null);

but how should I clear his security context ?

4

1 回答 1

1

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

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

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

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

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

于 2012-08-03T05:19:05.523 回答