Sar*_*aro 6 java spring spring-mvc spring-security
我正在使用 spring security 并实现了 UserDetailsService ,它完美地处理我的用户登录过程。
问题是这样的:是否有一种标准方法可以在每个请求上从数据库检查用户状态,以便如果用户的帐户状态更改为“锁定”或他的角色在他仍然登录时发生更改,应用程序会阻止他继续他的工作。
这里的问题是,我的自定义 UserDetailsService 类中的“public UserDetails loadUserByUsername(String arg0)”仅在登录过程中调用,并且 userDetails 对象自登录过程执行以来一直保留数据,并且 userDetails 信息不新鲜。
我可以通过一些解决方法来解决这个问题,例如从数据库获取用户对象并通过侦听器检查其状态。但我觉得spring security可能对这种情况有一个通用的解决方案。
请帮忙。谢谢。
基本思想是使用一个自定义的方法SecurityContextRepository来丢弃保存在 http 会话中的用户详细信息。
对于完整的示例和工作项目,请查看我对类似问题的回答:Spring Security logoff a user while running
| 归档时间: |
|
| 查看次数: |
3659 次 |
| 最近记录: |