【发布时间】:2015-03-19 01:37:12
【问题描述】:
我有以下问题:我有默认的用户和角色域,并且我使用 spring 安全插件。有一个特殊要求,如果管理员使用 USER_ROLE 删除用户并且该用户此时已通过身份验证,则应立即将该用户踢出应用程序。如果我们有这个用户的对象实例,是否可以通过编程方式为用户注销?有点像
def(User user) {
someSpringService.forceLogout(user)
}
谢谢!
【问题讨论】:
-
看看这里的一些答案,他们会引导你如何做到这一点:stackoverflow.com/questions/11247495/…
-
@JoshuaMoore 谢谢,但不幸的是它没有帮助:(((
-
为什么不呢?它清楚地展示了如何设置会话注册表、查找给定用户的会话以及使用户无效(例如注销)。缺少什么?
-
@JoshuaMoore 是的,我确实很喜欢解释,甚至发现了一些遗漏 - 无法将 sessionRegistry.getAllSession 与 User 对象一起使用,但应该使用 Principal 对象。但这不是问题。由于某种原因 sessionInformation.expireNow() 没有任何效果。可能是因为 ConcurrentSessionControlStrategy 已被弃用,我试图用 ConcurrentSessionControlAuthenticationStrategy (这是新版本)替换它,但它不起作用。
-
当您说“它不起作用”时,您是什么意思?会话不会过期吗?它没有找到会话吗?
标签: grails spring-security grails-plugin grails-2.0