如何基于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();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Spring Boot 2 实战:自定义启动运行逻辑实例详解
这篇文章主要介绍了Spring Boot 2 实战:自定义启动运行逻辑,结合实例形式详细分析了Spring Boot 2自定义启动运行逻辑详细操作技巧与注意事项,需要的朋友可以参考下2020-05-05
Spring MVC配置双数据源实现一个java项目同时连接两个数据库的方法
这篇文章主要给大家介绍了关于Spring MVC如何配置双数据源实现一个java项目同时连接两个数据库的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。2017-05-05
Springboot Mybatis使用pageHelper如何实现分页查询
这篇文章主要介绍了Springboot Mybatis使用pageHelper如何实现分页查询问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-05-05
自定义注解实现Spring容器注入Bean方式(类似于mybatis的@MapperScans)
本文介绍了如何通过自定义注解@MyService和@MyServiceScans在SpringBoot项目中自动将指定包下的类注入Spring容器,详细解释了创建自定义注解、定义包扫描器ClassPathBeanDefinitionScanner的作用与实现2024-09-09


最新评论