package com.zhuxs.result.shiro; import org.apache.shiro.session.Session; import org.apache.shiro.session.SessionListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; /** * Created by shusesshou on 2017/9/22. */ public class ShiroSessionListener implements SessionListener { private static final Logger logger = LoggerFactory.getLogger(ShiroSessionListener.class); @Autowired private ShiroSessionDao shiroSessionDao; @Autowired private JedisPool jedisPool; @Override public void onStart(Session session) { logger.debug("session {} onStart",session.getId()); } @Override public void onStop(Session session) { shiroSessionDao.delete(session); Jedis jedis = jedisPool.getResource(); jedis.publish("shiro.session.uncache",(String) session.getId()); logger.debug("session {} onStop", session.getId()); } @Override public void onExpiration(Session session) { shiroSessionDao.delete(session); Jedis jedis = jedisPool.getResource(); jedis.publish("shiro.session.uncache",(String) session.getId()); logger.debug("session {} onExpiration", session.getId()); } }