`
lhhlp2011
  • 浏览: 45580 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

acegi并发控制httpsession

阅读更多

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 Acegi权限控制是Spring框架中用于实现Web应用安全的一种解决方案。Acegi Security(现已被Spring Security替代)是一个功能强大的安全框架,它主要解决了认证(Authentication)和授权(Authorization)这两...

    acegi权限控制学习笔记

    Acegi权限控制学习笔记 Acegi安全框架是Spring Security的前身,它提供了一种强大的、灵活的、基于组件的安全解决方案,用于实现企业级应用的安全控制。在这个学习笔记中,我们将探讨两个关键点:身份认证成功后的...

    使用acegi控制用户权限实例

    在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其核心思想和机制仍然适用于现代的Spring Security。 首先,我们需要理解Acegi的基础概念。Acegi的核心是`...

    acegi 权限控制按钮

    Acegi是Spring框架早期的一个安全模块,用于提供高级的安全性和权限控制。在本文中,我们将深入探讨Acegi如何实现精细的权限控制,直至按钮或HTML元素级别,以及如何将其部署到Tomcat服务器。 首先,Acegi的核心是...

    集成ACEGI 进行权限控制.rar

    ACEGI Security是Spring框架早期的一个安全模块,用于提供企业级的权限控制和认证功能。它在Spring Security(原名Acegi Security)的前身,为Java应用程序提供了强大的安全基础架构。这个压缩包“集成ACEGI 进行...

    acegi权限控制与数据库配置在SSH中的初级使用

    本软件压缩包内附acegi的相关使用说明,acegi-security-1.0.6.jar包,TSQL语言等; &lt;br&gt;acegi初级使用者的良好桥梁,让你从零基础学会对acegi的相关配置及简单使用(需要对SSH的搭建有所了解); &lt;br&gt;真正高效的acegi...

    acegi

    - **授权(Authorization)**:Acegi 提供细粒度的权限控制,允许开发者根据角色、URL路径、方法参数等进行权限配置,实现不同级别的访问控制。 - **会话管理(Session Management)**: Acegi 可以监控和管理用户...

    Acegi例子代码+一个很好的学习Acegi的网址

    3. **会话管理(Session Management)**:Acegi提供了会话管理功能,可以防止会话固定攻击(Session Fixation),并支持会话超时和并发会话控制。 4. **过滤器安全链(Filter Security Interceptor)**:Acegi的...

    权限Acegi的使用

    5. **会话管理**:Acegi提供了会话管理功能,如会话固定攻击防护、会话超时检测和并发会话控制,以防止恶意用户同时使用同一用户的多个会话。 6. **事件监听**:Acegi允许监听和处理安全相关的事件,如登录成功、...

    Acegi-spring安全框架

    Acegi的主要目标是实现业务对象方法级别的安全控制,确保URL资源、业务类方法以及领域对象的访问得到适当限制。 1. URL资源的访问控制:Acegi能够设定不同用户群体对网页资源的访问权限。例如,所有用户可以访问...

    基于java的ACEGI

    2. **授权(Authorization)**:Acegi允许基于角色的访问控制(RBAC),可以设置权限规则来控制用户对资源的访问。这包括访问控制列表(ACL)和方法级别的安全性,确保只有授权用户才能执行特定操作。 3. **会话...

    spring acegi 详细文档

    首先,Acegi的主要目标是保护Spring应用免受非法访问,它提供了丰富的功能来实现用户认证、会话管理、权限控制以及安全相关的异常处理。Acegi的核心组件包括`AuthenticationManager`、`AccessDecisionManager`和`...

    ACEGI

    Acegi Security是一个专门为Spring框架设计的权限控制框架,旨在为基于J2EE的企业级应用程序提供全面的安全服务。这个框架解决了J2EE规范中安全性配置不便于移植的问题,使得应用程序的安全设置能够在不同服务器环境...

    acegi2.0

    Spring Security提供了会话管理功能,包括会话固定保护、会话超时检测和并发会话控制,以防止会话劫持和会话固定攻击。 5. **Remember-Me服务**: 为了提供用户便利,Spring Security 2.0引入了Remember-Me服务,...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应

    除了基本的认证和授权,Acegi Security还提供了会话管理功能,包括会话超时、并发会话控制等。这可以通过配置`SessionRegistry`和`HttpSessionEventPublisher`来实现。 然而,需要注意的是,自Spring 3.2版本起,...

    实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi是一个专门为SpringFramework应用提供安全机制的开放源代码项目,全称为Acegi Security System for Spring,当前版本为 0.8.3。它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和...

Global site tag (gtag.js) - Google Analytics