package com.xyz.service.shiro; import org.apache.shiro.session.Session; import org.apache.shiro.session.SessionListener; import lombok.extern.slf4j.Slf4j; @Slf4j public class ShiroSessionListener implements SessionListener { @Override public void onStart(Session session) {//会话创建时触发 log.error("会话创建:" + session.getId()); } @Override public void onExpiration(Session session) {//会话过期时触发 log.error("会话过期:" + session.getId()); } @Override public void onStop(Session session) {//退出/会话过期时触发 log.error("会话停止:" + session.getId()); } }
<!-- sessionManager --> <bean id="redisSessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager"> <property name="sessionDAO" ref="redisSessionDAO" /> <!-- Collection<SessionListener> listeners --> <property name="sessionListeners"> <list> <ref bean="shiroSessionListener" /> </list> </property> </bean>