首页 文章

如何在spring security中检查每个请求的用户状态

提问于
浏览
3

我正在使用Spring安全性,我实现了UserDetailsService,它完美地处理了我的用户登录过程 .

问题是:是否有一种标准方法可以在每个请求中检查数据库中的用户状态,这样如果用户的帐户状态变为“已锁定”或者他的角色在STILL登录时被更改,则应用程序会阻止他继续他的工作 .

这里的问题是我的自定义UserDetailsService类中的“public UserDetails loadUserByUsername(String arg0)”仅在登录过程中被调用,而userDetails对象保存数据,因为登录过程已执行且userDetails信息不新鲜 .

我可以通过一些解决方法来解决这个问题,例如从数据库获取用户对象并通过侦听器检查其状态 . 但我觉得 Spring 季安全可能会对这种情况有一个普遍的解决方案 .

请帮忙 . 谢谢 .

1 回答

  • 1

    基本思想是使用自定义 SecurityContextRepository ,它会丢弃在http会话中保存的用户详细信息 .

    有关完整示例和工作项目,请在此处查看我对类似问题的回答:Spring Security logoff a user while runtime

相关问题