会话监听器用于监听会话创建、过期及停止事件:
public class MySessionListener implements SessionListener {
@Override
public void onStart(Session session) {//会话创建时触发
System.out.println("会话创建:" + session.getId());
}
@Override
public void onExpiration(Session session) {//会话过期时触发
System.out.println("会话过期:" + session.getId());
}
@Override
public void onStop(Session session) {//退出/会话过期时触发
System.out.println("会话停止:" + session.getId());
}
}
如果只想监听某一个事件,可以继承SessionListenerAdapter实现:
public class MySessionListener extends SessionListenerAdapter {
@Override
public void onStart(Session session) {
System.out.println("会话创建:" + session.getId());
}
}
在shiro的配置文件中配置监听:
<!-- 自定义session监听器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="sessionListeners" ref="sessionListener" />
</bean>
<bean id="sessionListener" class="org.jstudio.shiro.session.MySessionListener"/>