标签: session spring-security invalidation
我的应用程序的某些用户可以在固定的最长时间内使用它。在过期时间之后发生的第一个请求,在检查用户是目标组的一部分后,我想使会话无效,更新用户并返回401.
理论上,可以使用调用后会话验证的servlet过滤器。我正在寻找有关如何使用spring security进行此操作的指示。
谢谢!
答案 0 :(得分:0)
虽然你当然可以添加一个普通的servlet过滤器,它在链的最后(或者至少在Spring Security过滤器堆栈之后)执行,你可以获得SecurityContext并检查用户(可能会注销用户) this或this),我建议您只需更改每个用户的会话持续时间。成功登录后(AuthenticationSuccessHandler是一个好地方),您只需在会话中调用setMaxInactiveInterval,并根据用户的角色为其提供不同的值。这对我来说似乎更加清晰,因为您不必单独处理在语义上相同的实际和强制会话到期/注销情况。
AuthenticationSuccessHandler
setMaxInactiveInterval