配置监听类
import org.apache.shiro.session.Session;
import org.apache.shiro.session.SessionListener;
public class SessionListener1 implements SessionListener {
@Override
public void onStart(Session session) {//会话创建触发 已进入shiro的过滤连就触发这个方法
// TODO Auto-generated method stub
System.out.println("会话创建:" + session.getId());
}
@Override
public void onStop(Session session) {//退出
// TODO Auto-generated method stub
System.out.println("退出会话:" + session.getId());
}
@Override
public void onExpiration(Session session) {//会话过期时触发
// TODO Auto-generated method stub
System.out.println("会话过期:" + session.getId());
}
}
在shiro的配置文件中添加启动监听类的入口:
<!-- Shiro's main business-tier object for web-enabled applications -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="shiroDbRealm" />
<property name="cacheManager" ref="shiroEhcacheManager" />
<property name="sessionManager" ref="sessionManager" /> <!-- 配置sessionListener -->
</bean>
<!-- 自定义session监听器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionListeners" ref="sessionListener1" />
</bean>
<bean id="sessionListener1" class="org.springside.examples.quickstart.service.sessionservice.SessionListener1"></bean>