我需要使(或踢)用户会话无效。该应用程序仅限制用户登录每个容器只有一个用户。
我尝试从会话注册表中调用 removeSessionInformation,完成解锁用户。这样其他用户就可以使用被踢出的会话用户名登录。
但是那个被踢的用户的 SessionContextHolder 仍然存在。因此他们仍然具有访问受保护页面的相同权限。
如何从指定的会话注册表信息中使 SessionContextHolder 的 Principal 无效或删除?
ps:在我的旧应用程序中,我在 UserDomain (UserDetails) 中提供了一个保存 HttpSession 的变量。当他们需要踢用户时,我只是从指定的 UserDomain 中使 HttpSession 无效。但我不知道如何在春天做到这一点(它更可能删除 SessionContextHolder 的主体而不是 HttpSession)。实现与春季的 SessionRegistryImpl 几乎相同。