shrio限制并发人数与剔除

shrio限制并发人数与剔除

1.定义过滤器KickoutSessionControlFilter

  建一个KickoutSessionControlFilter.java文件

  设置5个参数:

    kickoutUrl:踢出后到的地址

    boolean kickoutAfter:false:踢出之前登录的;true:之后登录的用户

    maxSession:同一个帐号最大会话数 默认1

    sessionManager;

    cacheManager;

2.配置shrio.xml文件

  <property name="filters">

        <map>

            <entry key="kickout" value-ref="kickoutSessionControlFilter"/>

        </map>

  </property>

  <bean id="kickoutSessionControlFilter" class="com.agood.bejavagod.controller.filter.KickoutSessionControlFilter"> 

        <property name="cacheManager" ref="shiroEhcacheManager"/> 

        <property name="sessionManager" ref="sessionManager"/>

        <!-- 是否踢出后来登录的,默认是false;即后者登录的用户踢出前者登录的用户 -->

        <property name="kickoutAfter" value="false"/> 

        <!-- 同一个用户最大的会话数,默认1;比如2的意思是同一个用户允许最多同时两个人登录 -->

        <property name="maxSession" value="1"/> 

        <property name="kickoutUrl" value="/login.action"/> 

  </bean>

3.修改过滤器配置,拦截所有请求

shrio.xml文件中

/** = kickout,authc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。