美文网首页
配置shiro会话监听

配置shiro会话监听

作者: 没事遛弯 | 来源:发表于2018-01-31 09:48 被阅读0次

    HttpSessionListener接口监听Session的创建和失效
    spring 使用 shiro 后,由于shiro重新封装了原有的session,所以不能再使用原来的session监听方法了

    • 配置监听类
    <!-- 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> 
    
    • 在shiro的配置文件中添加启动监听类的入口
    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());   
        }  
      
    } 
    

    如果只想监听某一个事件,可以继承SessionListenerAdapter实现

    public class MySessionListener extends SessionListenerAdapter {  
        @Override  
        public void onStart(Session session) {  
            System.out.println("会话创建:" + session.getId());  
        }  
    }  
    

    相关文章

      网友评论

          本文标题:配置shiro会话监听

          本文链接:https://www.haomeiwen.com/subject/llhkzxtx.html