【发布时间】:2011-06-04 19:24:23
【问题描述】:
我需要使用户会话无效(或踢出)。该应用程序仅限制用户每个容器只能登录一个用户。
我尝试从会话注册表中调用 removeSessionInformation,完成解锁用户。这样其他用户就可以使用被踢出的会话用户名登录。
但是那个被踢的用户的 SessionContextHolder 仍然存在。所以他们仍然具有访问受保护页面的相同权限。
如何从指定的会话注册信息中使SessionContextHolder的Principal失效或移除?
ps:在我的旧应用程序中,我在 UserDomain (UserDetails) 中提供了一个保存 HttpSession 的变量。当他们需要踢用户时,我只是从指定的 UserDomain 中使 HttpSession 无效。但是我不知道在春天怎么做(它比 HttpSession 更可能删除 SessionContextHolder 的 Principal )。实现与春季的SessionRegistryImpl几乎相同。
【问题讨论】:
标签: java spring session spring-security invalidation