如何基于spring security实现在线用户统计
1.修改web.xml,需要在web.xml描述文件中配置中使得o.s.s.web.session.HttpSessionEventPublisher生效,这样servelt容器将会通知Spring Security session生命周期的事件(通过HttpSessionEventPublisher)
<listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <listener> <listener-class> org.springframework.security.web.session.HttpSessionEventPublisher </listener-class> </listener>
2.修改spring-security.xml,借助于使用session注册跟踪(通过session并发控制),实现显示系统中当前活跃用户的数量。
<s:http use-expressions="true" disable-url-rewriting="true" auto-config="true"> <s:session-management invalid-session-url="/timeout"> <s:concurrency-control max-sessions="1" error-if-maximum-exceeded="false" session-registry-ref="sessionRegistry"/> </s:session-management> </s:http> <bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />
3.登录过滤器修改,登录验证通过后向sessionRegistry中添加在线session
sessionRegistry.registerNewSession(token, bean);
4.在controller中调用,获取sessionRegistry中存储的用户信息
List<Object> objlist = sessionRegistry.getAllPrincipals();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Java多线程基础 线程的等待与唤醒(wait、notify、notifyAll)
这篇文章主要介绍了Java多线程基础 线程的等待与唤醒,需要的朋友可以参考下2017-05-05解决springmvc+mybatis+mysql中文乱码问题
这篇文章主要介绍了解决java中springmvc+mybatis+mysql中文乱码问题的相关资料,需要的朋友可以参考下2015-09-09javax.mail.SendFailedException: Sending failed问题原因
这篇文章主要介绍了javax.mail.SendFailedException: Sending failed问题原因,需要的朋友可以参考下2015-05-05Spring Boot 整合单机websocket的步骤 附github源码
websocket 是一个通信协议,通过单个 TCP 连接提供全双工通信,这篇文章主要介绍了Spring Boot 整合单机websocket的步骤(附github源码),需要的朋友可以参考下2021-10-10tio-boot jfinal-plugins框架整合redis示例详解
这篇文章主要为大家介绍了tio-boot jfinal-plugins框架整合redis示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-12-12教你开发脚手架集成Spring Boot Actuator监控的详细过程
这篇文章主要介绍了开发脚手架集成Spring Boot Actuator监控的详细过程,集成包括引入依赖配置文件及访问验证的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-05-05
最新评论