acegi控制并发httpsession
在一些应用场合,企业可能需要限制同一账号在同一时间登录到同一web应用的次数,即并发控制httpsession数量。比如同一时间只允许admin/password用户在服务区端存在一个或若干个活动的httpsession。
acegi内置了这一并发控制的支持,要使用这一支持,需要完成以下步骤:
1、在acegi的配置文件中做如下配置:
<bean id="concurrentSessionFilter" class="org.acegisecurity.concurrent.ConcurrentSessionFilter">
<property name="sessionRegistry" ref="sessionRegistry" />
<property name="expiredUrl"><value>/hello.html</value></property>
<bean>
<bean id="sessionRegistry" class="org.acegisecurity.concurrent.SessionRegistryImpl" />
此外,别忘了将配置的concurrentSessionFilter过滤器添加到过滤器链中
2、一旦认证管理器成功认证了authentication请求,providerManager会立即调用conurrentSessionController验证当前用用户登录信息。
所以要在acegi配置文件中添加如下配置:
<bean id="authenticationManager" class="org.acegisecurity.providers.ProviderManager">
...
<property name="sessionController" ref="concurrentSessionController">
</bean>
<bean id="concurrentSessionController" class="org.acegisecurity.concurrent.ConcurrentSessionControllerImpl">
<property name="maximumSession" value="1" /> <!--表示允许用户创建的最大并发session -->
<property name="sessionRegistry" ref="sessionRegistry" />
<property name="exceptionIfMaximumExceeded" value="false" /><!-- 表示并发数量已达到后是否抛出异常-->
在实际应用中,开发者往往会将exceptionIfMaximumExceeded属性设置为false,这也是较好的做法,这是因为很多浏览器用户往往不会显示退出已登录的web应用,而是直接将浏览器关闭。
3、在web.xml文件中配置如下监听器:
<listener>
<listener-class>org.acegisecurity.ui.session.HttpSessionEventPublisher</listener-class>
<listener>
通过上述过程我们即启用了httpsession并发控制。
分享到:
相关推荐
Spring Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...
Acegi权限控制学习笔记 Acegi安全框架是Spring Security的前身,它提供了一种强大的、灵活的、基于组件的安全解决方案,用于实现企业级应用的安全控制。在这个学习笔记中,我们将探讨两个关键点:身份认证成功后的...
在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其核心思想和机制仍然适用于现代的Spring Security。 首先,我们需要理解Acegi的基础概念。Acegi的核心是`...
Acegi是Spring框架早期的一个安全模块,用于提供高级的安全性和权限控制。在本文中,我们将深入探讨Acegi如何实现精细的权限控制,直至按钮或HTML元素级别,以及如何将其部署到Tomcat服务器。 首先,Acegi的核心是...
ACEGI Security是Spring框架早期的一个安全模块,用于提供企业级的权限控制和认证功能。它在Spring Security(原名Acegi Security)的前身,为Java应用程序提供了强大的安全基础架构。这个压缩包“集成ACEGI 进行...
本软件压缩包内附acegi的相关使用说明,acegi-security-1.0.6.jar包,TSQL语言等; <br>acegi初级使用者的良好桥梁,让你从零基础学会对acegi的相关配置及简单使用(需要对SSH的搭建有所了解); <br>真正高效的acegi...
- **授权(Authorization)**:Acegi 提供细粒度的权限控制,允许开发者根据角色、URL路径、方法参数等进行权限配置,实现不同级别的访问控制。 - **会话管理(Session Management)**: Acegi 可以监控和管理用户...
3. **会话管理(Session Management)**:Acegi提供了会话管理功能,可以防止会话固定攻击(Session Fixation),并支持会话超时和并发会话控制。 4. **过滤器安全链(Filter Security Interceptor)**:Acegi的...
5. **会话管理**:Acegi提供了会话管理功能,如会话固定攻击防护、会话超时检测和并发会话控制,以防止恶意用户同时使用同一用户的多个会话。 6. **事件监听**:Acegi允许监听和处理安全相关的事件,如登录成功、...
Acegi的主要目标是实现业务对象方法级别的安全控制,确保URL资源、业务类方法以及领域对象的访问得到适当限制。 1. URL资源的访问控制:Acegi能够设定不同用户群体对网页资源的访问权限。例如,所有用户可以访问...
2. **授权(Authorization)**:Acegi允许基于角色的访问控制(RBAC),可以设置权限规则来控制用户对资源的访问。这包括访问控制列表(ACL)和方法级别的安全性,确保只有授权用户才能执行特定操作。 3. **会话...
首先,Acegi的主要目标是保护Spring应用免受非法访问,它提供了丰富的功能来实现用户认证、会话管理、权限控制以及安全相关的异常处理。Acegi的核心组件包括`AuthenticationManager`、`AccessDecisionManager`和`...
Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...
Spring Security提供了会话管理功能,包括会话固定保护、会话超时检测和并发会话控制,以防止会话劫持和会话固定攻击。 5. **Remember-Me服务**: 为了提供用户便利,Spring Security 2.0引入了Remember-Me服务,...
除了基本的认证和授权,Acegi Security还提供了会话管理功能,包括会话超时、并发会话控制等。这可以通过配置`SessionRegistry`和`HttpSessionEventPublisher`来实现。 然而,需要注意的是,自Spring 3.2版本起,...
Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...