强退&过期清理登录帐号缓存会话
This commit is contained in:
@ -57,6 +57,14 @@ public interface ISysUserOnlineService
|
||||
*/
|
||||
public void forceLogout(String sessionId);
|
||||
|
||||
/**
|
||||
* 清理用户缓存
|
||||
*
|
||||
* @param loginName 登录名称
|
||||
* @param sessionId 会话ID
|
||||
*/
|
||||
public void removeUserCache(String loginName, String sessionId);
|
||||
|
||||
/**
|
||||
* 查询会话集合
|
||||
*
|
||||
|
@ -1,9 +1,14 @@
|
||||
package com.ruoyi.system.service.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.Deque;
|
||||
import java.util.List;
|
||||
import org.apache.shiro.cache.Cache;
|
||||
import org.apache.shiro.cache.ehcache.EhCacheManager;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.ruoyi.common.constant.ShiroConstants;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.system.domain.SysUserOnline;
|
||||
@ -20,6 +25,9 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||
{
|
||||
@Autowired
|
||||
private SysUserOnlineMapper userOnlineDao;
|
||||
|
||||
@Autowired
|
||||
private EhCacheManager ehCacheManager;
|
||||
|
||||
/**
|
||||
* 通过会话序号查询信息
|
||||
@ -101,6 +109,23 @@ public class SysUserOnlineServiceImpl implements ISysUserOnlineService
|
||||
userOnlineDao.deleteOnlineById(sessionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理用户缓存
|
||||
*
|
||||
* @param loginName 登录名称
|
||||
* @param sessionId 会话ID
|
||||
*/
|
||||
public void removeUserCache(String loginName, String sessionId)
|
||||
{
|
||||
Cache<String, Deque<Serializable>> cache = ehCacheManager.getCache(ShiroConstants.SYS_USERCACHE);
|
||||
Deque<Serializable> deque = cache.get(loginName);
|
||||
if (StringUtils.isNull(cache) || StringUtils.isEmpty(deque))
|
||||
{
|
||||
return;
|
||||
}
|
||||
deque.remove(sessionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询会话集合
|
||||
*
|
||||
|
Reference in New Issue
Block a user