package com.gxx.manage.shiro.session; import org.apache.shiro.session.Session; import org.apache.shiro.session.UnknownSessionException; import org.apache.shiro.session.mgt.eis.AbstractSessionDAO; import java.io.Serializable; import java.util.Collection; /** *
*
Title:
*
* 自定义shiro会话DAO *
*
Description:
*
*

none *

*
* * @author Administrator * @version 1.0, 2015年9月22日 * @since manage * */ public class CustomShiroSessionDAO extends AbstractSessionDAO { private ShiroSessionRepository shiroSessionRepository; @Override public void update(Session session) throws UnknownSessionException { getShiroSessionRepository().saveSession(session); } @Override public void delete(Session session) { if (session == null) { return; } Serializable id = session.getId(); if (id != null) { getShiroSessionRepository().deleteSession(id); } //TODO if session is too large,when session destory clear shiro cache } @Override public Collection getActiveSessions() { return getShiroSessionRepository().getAllSessions(); } @Override protected Serializable doCreate(Session session) { Serializable sessionId = this.generateSessionId(session); this.assignSessionId(session, sessionId); getShiroSessionRepository().saveSession(session); return sessionId; } @Override protected Session doReadSession(Serializable sessionId) { return getShiroSessionRepository().getSession(sessionId); } public ShiroSessionRepository getShiroSessionRepository() { return shiroSessionRepository; } public void setShiroSessionRepository( ShiroSessionRepository shiroSessionRepository) { this.shiroSessionRepository = shiroSessionRepository; } }