session共享

登录缓存清理
缓存更换为redis缓存代码提交
This commit is contained in:
段冬梅
2018-12-16 11:04:25 +08:00
parent 22920b84cc
commit ed45211de9
11 changed files with 310 additions and 82 deletions

View File

@@ -11,6 +11,7 @@ import org.apache.shiro.session.UnknownSessionException;
import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.subject.support.DefaultSubjectContext;
import org.crazycake.shiro.RedisSessionDAO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -26,7 +27,8 @@ import com.nis.util.StringUtils;
* @author
* @version
*/
public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements SessionDAO {
/*public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements SessionDAO {*/
public class CacheSessionDAO extends RedisSessionDAO {
private Logger logger = LoggerFactory.getLogger(getClass());
@@ -34,7 +36,7 @@ public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements Sessio
super();
}
@Override
/*@Override
protected void doUpdate(Session session) {
if (session == null || session.getId() == null) {
return;
@@ -60,9 +62,9 @@ public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements Sessio
}
super.doUpdate(session);
logger.debug("update {} {}", session.getId(), request != null ? request.getRequestURI() : "");
}
}*/
@Override
/*@Override
protected void doDelete(Session session) {
if (session == null || session.getId() == null) {
return;
@@ -70,7 +72,7 @@ public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements Sessio
super.doDelete(session);
logger.debug("delete {} ", session.getId());
}
}*/
@Override
protected Serializable doCreate(Session session) {
@@ -127,7 +129,6 @@ public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements Sessio
* @param includeLeave 是否包括离线最后访问时间大于3分钟为离线会话
* @return
*/
@Override
public Collection<Session> getActiveSessions(boolean includeLeave) {
return getActiveSessions(includeLeave, null, null);
}
@@ -139,7 +140,6 @@ public class CacheSessionDAO extends EnterpriseCacheSessionDAO implements Sessio
* @param filterSession 不为空,则过滤掉(不包含)这个会话。
* @return
*/
@Override
public Collection<Session> getActiveSessions(boolean includeLeave, Object principal, Session filterSession) {
// 如果包括离线,并无登录者条件。
if (includeLeave && principal == null){