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

@@ -24,7 +24,12 @@ import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.rpc.client.RPCServiceClient;
import org.apache.commons.io.FileUtils;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.session.Session;
import org.crazycake.shiro.exception.SerializationException;
import org.crazycake.shiro.serializer.ObjectSerializer;
import org.crazycake.shiro.serializer.RedisSerializer;
import org.crazycake.shiro.serializer.StringSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -39,15 +44,19 @@ import com.nis.util.TimeConstants;
import com.nis.web.dao.SrcIpDao;
import com.nis.web.dao.SysOfficeDao;
import com.nis.web.dao.UserDao;
import com.nis.web.security.CacheSessionDAO;
import com.nis.web.security.Servlets;
import com.nis.web.security.SessionDAO;
import com.nis.web.security.UserUtils;
import antlr.StringUtils;
@Service
public class SystemService extends BaseService{
@Autowired
private SessionDAO sessionDao;
private CacheSessionDAO sessionDao;
/*private SessionDAO sessionDao;*/
@Autowired
private UserDao userDao;
@@ -57,7 +66,8 @@ public class SystemService extends BaseService{
@Autowired
private SrcIpDao srcIpDao;
private RedisSerializer keySerializer = new StringSerializer();
private RedisSerializer valueSerializer = new ObjectSerializer();
public Collection<Session> getActiveSessions(boolean includeLeave) {
return sessionDao.getActiveSessions(includeLeave);
@@ -72,6 +82,17 @@ public class SystemService extends BaseService{
sessionDao.delete(session);
}
public void deleteAuthenticationCache(String authenticationInfo) {
if (org.apache.commons.lang3.StringUtils.isBlank(authenticationInfo)) {
logger.error("AuthenticationInfo is null");
return;
}
try {
sessionDao.getRedisManager().del(keySerializer.serialize(authenticationInfo));
} catch (SerializationException e) {
logger.error("delete AuthenticationInfo error. AuthenticationInfo key=" + authenticationInfo);
}
}
public SysUser getUserByLoginName(String loginName) {
return UserUtils.getByLoginName(loginName);