首先,我们需要使得ConcurrentSessionFilter生效并在spring-security.xml配置。

[html] view plaincopy
  1. <http auto-config="true" use-expressions="true">
  2. <!-- Uncomment to limit the number of sessions a user can have -->
  3. <session-management invalid-session-url="/index.do">
  4. <concurrency-control max-sessions="1"
  5. error-if-maximum-exceeded="false"/>
  6. </session-management>
  7. </http>

其次,需要在web.xml描述文件中配置中使得o.s.s.web.session.HttpSessionEventPublisher生效,这样servelt容器将会通知Spring Security session生命周期的事件(通过HttpSessionEventPublisher)。

[html] view plaincopy
  1. <listener>
  2. <listener-class>
  3. org.springframework.web.context.ContextLoaderListener
  4. </listener-class>
  5. </listener>
  6. <listener>
  7. <listener-class>
  8. org.springframework.security.web.session.HttpSessionEventPublisher
  9. </listener-class>
  10. </listener>

然后,借助于使用session注册跟踪(通过session并发控制),实现显示系统中当前活跃用户的数量。
         让我们在BaseController中添加一个简单的方法以及bean自动织入。@Autowired

[java] view plaincopy
  1. @Autowired
  2. SessionRegistry sessionRegistry;
  3. @ModelAttribute("numUsers")
  4. public int getNumberOfUsers() {
  5. return sessionRegistry.getAllPrincipals().size();
  6. }

可以看到这暴露了一个能够在Spring MVC JSP页面中能够使用的属性。
最后,我们可以添加一个页脚footer.jsp到JBCP Pets站点中并使用这个属性。

[html] view plaincopy
  1. <body>
  2. <div id="footer">
  3. ${numUsers} user(s) are logged in!
  4. </div>
  5. </body>

如果你重新启动应用并登录,能够在每个页面的底部看到活动用户的数量。
参考资料:《Spring Security3》第六章第三部分翻译(Session的管理和并发)
                http://lengyun3566.iteye.com/blog/1198836

spring security3 统计在线用户相关推荐

  1. java和redis统计在线,在SpringBoot中使用Redis的zset统计在线用户信息

    统计在线用户的数量,是应用很常见的需求了.如果需要精准的统计到用户是在线,离线状态,我想只有客户端和服务器通过保持一个TCP长连接来实现.如果应用本身并非一个IM应用的话,这种方式成本极高. 现在的应 ...

  2. java扫描所有用户信息_监听器实现案例----自定义session扫描器和统计在线用户人数及用户信息...

    一.案例一:自定义Session扫描器 1.案例说明 当一个Web应用创建的Session很多时,为了避免Session占用太多的内存,我们可以选择手动将这些内存中的session销毁,那么此时也可以 ...

  3. Oracle EBS R12统计在线用户SQL

    Oracle EBS R12统计在线用户SQL --R12查询EBS在线用户SQL SELECT U.USER_NAME, APP.APPLICATION_SHORT_NAME, FAT.APPLIC ...

  4. java在线用户查看_java Session统计在线用户,并且显示在线用户

    关键字: httpsession 1.http://www.jspcn.net/htmlnews/11049329478121583.html      监听器 2.session.invalidat ...

  5. java web 统计在线用户_Javaweb监听器实例之统计在线人数

    本文实例为大家分享了Javaweb统计在线人数示的具体代码,供大家参考,具体内容如下 1. 实现功能 统计在线人数 显示每个人的sessionId.Ip.第一次登录时间 2. 运用监听器种类 Http ...

  6. ASP.NET中在线用户统计

    天极论坛 统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单 ...

  7. WhoIsOnline ;) - 解读CNForum源码中在线用户统计

    原文:http://www.cnblogs.com/andrewbao/archive/2005/01/05/87061.html 下载CnForumsBeta1(今天发现CnForum1.2测试版本 ...

  8. 【博客大赛】100行js代码实现网站在线用户数量统计 nodejs + socket.io方案

    需求提出 公司的在线培训平台,需要增加一个新功能:实时统计当前在线的用户数量并在终端界面上显示,需要的时候可以查询当前在线的用户的明细. 有3种技术方案可以选用: 1)改动后台代码,在用户登录和退出时 ...

  9. 同时在线用户人数怎么统计?

    每次用户操作时更新其在线时间,在用户表里加上一个 update_time 字段,每次用户进行操作时,更新这个字段为当前的时间,然后再定义一个过期时间,比如十分钟,表示十分钟内没有任何操作默认用户不在线 ...

最新文章

  1. 「Jenkins+Git+Maven+Shell+Tomcat持续集成」经典教程
  2. 谈谈我对Manacher算法的理解
  3. ipconfig的C语言实现
  4. Ansj中文分词Java开发小记
  5. LCS最长公共子序列
  6. 线性表操作的基本应用
  7. 计算机数学基础模拟试题,计算机数学基础(A)模拟试题.doc
  8. 如何打开屏幕坏的手机_每天打开手机屏幕20次?打开10次以上的朋友进~
  9. filecoin白皮书_【Filecoin挖矿小知识】在lotus开发网上可以参与Filecoin挖矿吗?
  10. JavaScript之call,bind,apply方法及 this 的用法辨析
  11. 原生javascript添加和删除class
  12. VsCode 配置java环境(详细教程)
  13. 如何查看自己windows电脑的IP地址
  14. execution(* com.xxx.*.*(..))
  15. 如何用QT做串口调试助手Qseriaport类的使用
  16. 希望计算机专业同学都知道这些老师
  17. 计算机域名长啥样,域名是什么 什么样的域名是一个好域名【详解】
  18. Qt Android 调用系统文件管理
  19. java 当前线程 等待_Java 多线程等待
  20. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?

热门文章

  1. linux可用的ftp,linuxunix下有很多可用的ftp服务器
  2. java class类_关于创建java中的class类的对象的方法
  3. destoon网站mysql分表_destoon : 常用数据库操作
  4. 不使用session,借助redis实现验证码
  5. Ubuntu 16.04 安装CodeBlocks
  6. 各个图标的意思_冬奥体育图标设计团队负责人林存真:每一个图标要画100稿以上...
  7. gmp计算机系统课件,EU GMP附录11计算机系统◆问答
  8. 爱特php文件管理器2.8_查找「超级蜘蛛池开发者中心 抠:44564876易」安卓应用 - 豌豆荚...
  9. jz指令是什么意思_S7-200 SMART 运动控制指令详解-电气阿伟带小白启程
  10. Consider defining a bean of type ‘java.lang.String‘ in your configuration