shrio限制并發(fā)人數(shù)與剔除
1.定義過(guò)濾器KickoutSessionControlFilter
? 建一個(gè)KickoutSessionControlFilter.java文件
? 設(shè)置5個(gè)參數(shù):
? ? kickoutUrl:踢出后到的地址
? ? boolean kickoutAfter:false:踢出之前登錄的终议;true:之后登錄的用戶
? ? maxSession:同一個(gè)帳號(hào)最大會(huì)話數(shù) 默認(rèn)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"/>
? ? ? ? <!-- 是否踢出后來(lái)登錄的汇竭,默認(rèn)是false;即后者登錄的用戶踢出前者登錄的用戶 -->
? ? ? ? <property name="kickoutAfter" value="false"/>?
? ? ? ? <!-- 同一個(gè)用戶最大的會(huì)話數(shù),默認(rèn)1;比如2的意思是同一個(gè)用戶允許最多同時(shí)兩個(gè)人登錄 -->
? ? ? ? <property name="maxSession" value="1"/>?
? ? ? ? <property name="kickoutUrl" value="/login.action"/>?
? </bean>
3.修改過(guò)濾器配置铝穷,攔截所有請(qǐng)求
shrio.xml文件中
/** = kickout,authc