如何在spring-security中注销所有登录用户?
我希望能够以编程方式注销所有登录用户。 如何在某些事件上强制注销所有用户?
首先在web.xml中定义HttpSessionEventPublisher
org.springframework.security.web.session.HttpSessionEventPublisher
然后在spring security.xml文件中定义
。
现在,在控制器方法中使用SessionRegistry
使所有会话无效。 下面的代码检索所有活动的会话。
List activeSessions = new ArrayList (); for (Object principal : sessionRegistry.getAllPrincipals()) { for (SessionInformation session : sessionRegistry.getAllSessions(principal, false)) { activeSessions.add(session); } }
在每个活动会话中,您可以调用expireNow()
方法使它们过期或使其无效。
Ketan为您提供了您正在寻找的答案,如果您更改块的第二个并使用session.expireNow();
而是activeSessions.add(session);
最终所有活动会话都将过期。
- 对会话使用sessionRegistry没有会话数限制?
- Spring Security将URL参数传递给Authentication Provider
- 我应该同时使用SocialAuthenticationFilter和ProviderSignInController吗?
- 使用Spring Security在运行时切换身份validation方法?
- 如何使用WSS4J拦截器在Web服务方法中获取经过身份validation的用户
- spring security从DB获取用户ID
- 无需身份validation即可在javax.mail中发送邮件
- 使用java配置进行n因子身份validation
- 如何正确地向服务器validationAngularJS客户端