kas*_*ega 8 spring tomcat spring-mvc spring-security
我正在使用Tomcat 6.0.32,Spring Security 3.0.5
在我的网络应用程序中,一些用户可以更改其他用户权限.发生这种情况时,我想为其权限已更改的用户的任何会话无效.这有可能吗?如果可以的话怎么样?
Sha*_*eep 12
在不使用特定于容器的API的情况下,您通常无法在更改其帐户信息时立即使用户会话无效,因为访问该方法的唯一方法HttpSession是通过该HttpServletRequest对象.
相反,您可以将用户名缓存在内存存储中,并在过滤器或自定义中查询它AccessDecisionVoter.在用户表中使用标志并不是一个好主意,因为标志本质上是暂时的(在服务器重启后它是无关紧要的)并且最好避免每次请求时数据库查询的性能损失.
有一篇关于使用自定义选民进行此类事情的博客文章.它已经过时了,但一般方法都是合理的.
另一种方法是使用Spring Security SessionRegistry,它是会话管理功能的一部分.通常,这用于限制用户可以拥有的会话数,但也可以用于列出当前经过身份验证的用户或标记其会话到期.
重新加载用户的权限可能也是一个想法,而不是完全记录它们.
我相信这就是您所需要的 - 获取已登录用户的列表并使您不需要的会话无效.
| 归档时间: |
|
| 查看次数: |
9961 次 |
| 最近记录: |