CustomSessionDao.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package com.nuliji.tools.shiro.session;
  2. import java.io.Serializable;
  3. import java.util.Collection;
  4. import org.apache.shiro.session.Session;
  5. import org.apache.shiro.session.UnknownSessionException;
  6. import org.apache.shiro.session.mgt.eis.AbstractSessionDAO;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. /**
  10. * Created by gaojie on 2017/11/7.
  11. */
  12. public class CustomSessionDao extends AbstractSessionDAO {
  13. private static Logger logger = LoggerFactory.getLogger(CustomSessionDao.class);
  14. private SessionRepository sessionRepository;
  15. @Override
  16. public void delete(Session session) {
  17. if (session == null) {
  18. logger.error("session or session id is null");
  19. return;
  20. }
  21. Serializable id = session.getId();
  22. if (id != null)
  23. getSessionRepository().deleteSession(id);
  24. }
  25. @Override
  26. public Collection<Session> getActiveSessions() {
  27. return getSessionRepository().getAllSessions();
  28. }
  29. @Override
  30. public void update(Session session) throws UnknownSessionException {
  31. getSessionRepository().saveSession(session);
  32. }
  33. @Override
  34. protected Serializable doCreate(Session session) {
  35. Serializable sessionId = this.generateSessionId(session);
  36. this.assignSessionId(session, sessionId);
  37. getSessionRepository().saveSession(session);
  38. return sessionId;
  39. }
  40. @Override
  41. protected Session doReadSession(Serializable sessionId) {
  42. return getSessionRepository().getSession(sessionId);
  43. }
  44. public SessionRepository getSessionRepository() {
  45. return sessionRepository;
  46. }
  47. public void setSessionRepository(SessionRepository sessionRepository) {
  48. this.sessionRepository = sessionRepository;
  49. }
  50. }