`
bewithme
  • 浏览: 435068 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

spring security 3.1获取所有已登录用户的终极方案

 
阅读更多

 

      前不久有个需求,需要在后台查看所有已登录的用户,系统使用的是spring mvc3.1 + spring security 3.1+ jpa 2.0 。

     按官方文档中的方式去获取已登录的用户一直返加为0,经无数次折腾,终于有了可行的方案。先看下java代码部份。

 

   

public String queryLoginUser(int start,int limit){
		List<Object> slist =sessionRegistry.getAllPrincipals();
		int totalCount=slist.size();
		if(slist.size()==0){
			   return "{totalCount:" + totalCount + ",data:[]}";
		}
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		List<Object> pageList=slist.subList(start,limit>slist.size()?slist.size():limit);
		StringBuffer retVal=new StringBuffer("[");
		int k=0;
		for(int i=0;i<pageList.size();i++){
			List<SessionInformation> sessionList = sessionRegistry.getAllSessions(pageList.get(i),true); 
			User user=(User)pageList.get(i);
			for(SessionInformation t:sessionList){
				if(k!=0){
					retVal.append(",");
				}
			    retVal.append("{\"id\":\""+k+"\",\"userName\":\""+user.getUsername()+"\",\"sessionId\":\""+t.getSessionId()+"\",\"lastRequest\":\""+sdf.format(t.getLastRequest())+"\"}");
			    k=k+1;
			}
		}
		retVal.append("]");
	    return "{totalCount:" + totalCount + ",data:"+ retVal.toString() + "}";
	}

 该方法实现了对当前登录用户的分页查询,并返回Json数据格式。

 

 

   以下是xml配置的关键部份

 

  

  <beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />

 

<beans:bean id="sas" class="org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy">
  <beans:constructor-arg name="sessionRegistry" ref="sessionRegistry" />
  <beans:property name="maximumSessions" value="1" />
  <beans:property name="exceptionIfMaximumExceeded" value="true" />
 </beans:bean>

 

 

 
    <!-- 登录验证器 -->
    <beans:bean id="loginFilter" class="com.verysoft.baseframework.security.MyUsernamePasswordAuthenticationFilter">
		<beans:property name="sessionAuthenticationStrategy" ref="sas"/><!--此配置可实现获取所有登录用户信息 -->
		<beans:property name="filterProcessesUrl" value="/j_spring_security_check"></beans:property>
		<beans:property name="authenticationSuccessHandler" ref="loginLogAuthenticationSuccessHandler"></beans:property>
		<beans:property name="authenticationFailureHandler" ref="simpleUrlAuthenticationFailureHandler"></beans:property>
		<beans:property name="authenticationManager" ref="myAuthenticationManager"></beans:property>
		<beans:property name="userDao" ref="userDao"></beans:property>
	</beans:bean>
  <http use-expressions="true"  entry-point-ref="authenticationProcessingFilterEntryPoint">
        <logout delete-cookies="JSESSIONID"  invalidate-session="true" />
        <!-- 实现免登陆验证
        <remember-me /> -->
        <!-- <custom-filter  ref="concurrencyFilter" position="CONCURRENT_SESSION_FILTER"  />  -->
       	<custom-filter ref="loginFilter" position="FORM_LOGIN_FILTER"  />
		<custom-filter ref="securityFilter" before="FILTER_SECURITY_INTERCEPTOR"/>
		<session-management session-fixation-protection="none"  />
    </http>

 

 

此方案经本人验证通过,配置文件在附件中,有其它问题可联系本人QQ:359709421

 

全部代码在云盘  http://yunpan.cn/csQyg47f3gBkX (提取码:35a9)

 

 我的网店,有劳各位参观参观  http://mrs-x.taobao.com/

 

 
分享到:
评论
3 楼 不知谁唱唱给谁 2015-11-27  
楼主是好人 还给了我源码,非常感谢  http://yunpan.cn/csQyg47f3gBkX (提取码:35a9) 
2 楼 a958048434 2015-02-27  
代码部分太少了
1 楼 a958048434 2015-02-26  
楼主能不能把文件完整发过来啊,本人刚接触security,就遇到一个难题

相关推荐

    spring_security_3.1

    10. **国际化的错误消息**:Spring Security 3.1提供国际化支持,可以将错误消息翻译成多种语言,提高用户体验。 总的来说,Spring Security 3.1是一个强大且灵活的安全框架,对于Java开发者来说,理解和掌握其核心...

    springsecurity3.1.pdf

    标题:springsecurity3.1.pdf 描述:springsecurity3.1.pdf 标签:spring security3.1 部分内容:SpringSecurity Reference Documentation by Ben Alex and Luke Taylor 3.1.4.RELEASE **一、Spring Security 3.1...

    spring security3.1高级详细开发指南

    在Spring Security 3.1版本中,它提供了多种方式来管理用户认证和授权。本指南将深入讲解如何利用这个框架进行高级开发,通过一个简单的示例和一个复杂的示例来演示不同方法的实现。 首先,Spring Security 3.1的四...

    spring security 3.1学习资料 及 附件下载

    《Spring Security 3.1 学习指南及资源解析》 Spring Security是Java平台上的一款强大且高度可定制的安全框架,广泛应用于企业级Web应用的安全管理。本篇文章将围绕"Spring Security 3.1"这一主题,深入探讨其核心...

    spring security3.1 实现验证码自定义登录

    《Spring Security 3.1 实现验证码自定义登录详解》 在现代Web应用程序的安全管理中,Spring Security是一个不可或缺的框架,它提供了强大的访问控制和身份验证功能。在本文中,我们将深入探讨如何在Spring ...

    Spring Security3.1实践

    在Spring Security 3.1版本中,它提供了一套全面的安全解决方案,涵盖了从用户认证到权限控制等多个层面。本文将深入探讨Spring Security 3.1的核心概念、配置以及实际应用。 1. **核心概念** - **Authentication...

    spring security3.1的demo

    Spring Security 3.1也支持"记住我"功能,允许用户在一段时间内无须重新登录。这通过`RememberMeServices`接口实现,可以配置在`&lt;http&gt;`元素中。 7. **异常处理** 框架提供了一套标准的HTTP错误页面,例如403...

    Spring Security 3.1.pdf

    1. **支持最新的 Spring Framework 3.1**:Spring Security 3.1 完全兼容 Spring Framework 3.1,这意味着开发者可以利用 Spring 3.1 的所有新特性。 2. **增强的内存身份验证机制**:该版本引入了更加强大的内存...

    Spring Security 3.1 配置实例,有URL 方法拦截,都存数据库 maven

    总结,Spring Security 3.1提供了一套强大且灵活的安全解决方案,包括URL和方法拦截、用户数据的数据库存储,以及通过Maven进行依赖管理。通过学习和实践,我们可以有效地保护我们的Web应用程序。

    springsecurity3.1官方手册(含中文版-英文版)

    6. **Remember-Me服务**:Spring Security提供了Remember-Me服务,允许用户在一段时间内无须再次登录,增强了用户体验。 7. **集成Spring MVC和Spring WebFlow**:Spring Security能够无缝集成到Spring MVC和Spring...

    Spring Security 3.1 +Spring +Servlet+JdbcTemplate

    在Spring Security 3.1的背景下,Servlet用于接收用户请求,然后通过Spring的DispatcherServlet进行分发处理。Spring Security则在此过程中提供安全拦截,确保只有经过身份验证和授权的用户才能访问特定资源。 ...

    Spring Security3.1实例

    在3.1版本中,Spring Security 进一步优化了其核心架构,提高了性能,并且增强了用户体验。 在"Spring Security3.1实例"中,我们主要关注以下几个核心知识点: 1. **认证**:Spring Security 提供了多种认证机制,...

    spring security 3.1

    - **社交网络平台**:通过 Spring Security 3.1 实现用户注册、登录、个人资料保护等功能,提高用户体验的同时保障数据安全。 - **电子商务网站**:利用 Spring Security 3.1 加强支付环节的安全性,防止恶意攻击,...

    spring security 3.1 PDF 英文版,源代码.7z

    在压缩包内的文件,"spring security 3.1 电子书,源代码"表明用户将获得两部分内容:一是Spring Security 3.1的电子书,这是一份详尽的教程或参考指南,涵盖了框架的各个方面;二是源代码,这些代码可以直接查看和...

    SpringSecurity3.1实际摸索总结

    总之,SpringSecurity 3.1 提供了一套全面的安全解决方案,通过精心配置可以满足各种复杂的安全需求。理解其过滤器链的工作原理,以及如何在项目中正确配置和使用,是实现安全应用的关键。同时,随着版本的升级,...

    Spring Security3.1高级详细开发指南

    ### Spring Security 3.1 高级开发指南详解 #### 一、Spring Security 3.1 使用方法概述 Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。Spring Security 3.1 版本提供了多种不同的配置方式...

    Spring Security3.1入门Demo

    - 根据需求定制访问控制规则,定义哪些URL需要用户登录才能访问,哪些URL对所有用户开放。 Spring Security 3.1入门Demo将帮助你了解这些基本概念,并为你提供一个可运行的实例,便于实际操作和学习。通过分析和...

    Spring Security 3.1 随书源代码

    Spring Security 是一个强大的Java安全框架,它为Spring应用程序提供了全面的安全解决方案。该框架的主要目标是保护Web应用程序,包括身份验证、授权以及会话管理。在"Spring Security 3.1 随书源代码"中,我们可以...

Global site tag (gtag.js) - Google Analytics