如何使用spring安全性以编程方式使会话无效

时间:2015-03-12 22:57:46

标签: session spring-security invalidation

我的应用程序的某些用户可以在固定的最长时间内使用它。在过期时间之后发生的第一个请求,在检查用户是目标组的一部分后,我想使会话无效,更新用户并返回401.

理论上,可以使用调用后会话验证的servlet过滤器。我正在寻找有关如何使用spring security进行此操作的指示。

谢谢!

1 个答案:

答案 0 :(得分:0)

虽然你当然可以添加一个普通的servlet过滤器,它在链的最后(或者至少在Spring Security过滤器堆栈之后)执行,你可以获得SecurityContext并检查用户(可能会注销用户) thisthis),我建议您只需更改每个用户的会话持续时间。成功登录后(AuthenticationSuccessHandler是一个好地方),您只需在会话中调用setMaxInactiveInterval,并根据用户的角色为其提供不同的值。这对我来说似乎更加清晰,因为您不必单独处理在语义上相同的实际强制会话到期/注销情况。