在我的应用程序中,我有一个可以删除用户的管理员。因此,当我从管理会话中删除用户时,我希望删除的用户应该自动注销。
我知道我删除的用户的会话 ID,但我不知道如何使用会话 ID 使会话无效。
我想要类似的东西:invalidate(SessionId);
有可能以任何方式吗?我认为可以使用过滤器并根据请求检查数据库,但是是否有另一种方法可以让我不需要在每个http请求上检查数据库?
谢谢。 :D
我想我看到了一个使用 Spring Security 基础设施的解决方案,会话注册中心 class.
您必须注册HttpSessionEventPublisher
in the web.xml
:
<listener>
<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
在 Spring 配置中,声明 SessionRegistry。
<bean id="sessionRegistry"
class="org.springframework.security.core.session.SessionRegistryImpl" />
在您的管理控制台中,您必须使用SessionRegistry
检索SessionInformation
用户和呼叫expireNow
。在用户下一次请求时,servlet 过滤器应该使 HttpSession 过期。的 javadoc会话信息有一些关于它如何工作的解释。
让我们知道这是否有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)