|
|
@@ -48,43 +48,30 @@ public class SysUserOnlineController extends BaseController {
|
|
|
@RequiresPermissions("monitor:online:list")
|
|
|
@PostMapping("/list")
|
|
|
@ResponseBody
|
|
|
- public TableDataInfo list(SysUserOnline userOnline)
|
|
|
- {
|
|
|
+ public TableDataInfo list(SysUserOnline userOnline) {
|
|
|
String ipaddr = userOnline.getIpaddr();
|
|
|
String loginName = userOnline.getLoginName();
|
|
|
TableDataInfo rspData = new TableDataInfo();
|
|
|
Collection<Session> sessions = redisSessionDAO.getActiveSessions();
|
|
|
Iterator<Session> it = sessions.iterator();
|
|
|
List<SysUserOnline> sessionList = new ArrayList<SysUserOnline>();
|
|
|
- while (it.hasNext())
|
|
|
- {
|
|
|
+ while (it.hasNext()) {
|
|
|
SysUserOnline user = getSession(it.next());
|
|
|
- if (StringUtils.isNotNull(user))
|
|
|
- {
|
|
|
- if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(loginName))
|
|
|
- {
|
|
|
+ if (StringUtils.isNotNull(user)) {
|
|
|
+ if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(loginName)) {
|
|
|
if (StringUtils.equals(ipaddr, user.getIpaddr())
|
|
|
- && StringUtils.equals(loginName, user.getLoginName()))
|
|
|
- {
|
|
|
+ && StringUtils.equals(loginName, user.getLoginName())) {
|
|
|
sessionList.add(user);
|
|
|
}
|
|
|
- }
|
|
|
- else if (StringUtils.isNotEmpty(ipaddr))
|
|
|
- {
|
|
|
- if (StringUtils.equals(ipaddr, user.getIpaddr()))
|
|
|
- {
|
|
|
+ } else if (StringUtils.isNotEmpty(ipaddr)) {
|
|
|
+ if (StringUtils.equals(ipaddr, user.getIpaddr())) {
|
|
|
sessionList.add(user);
|
|
|
}
|
|
|
- }
|
|
|
- else if (StringUtils.isNotEmpty(loginName))
|
|
|
- {
|
|
|
- if (StringUtils.equals(loginName, user.getLoginName()))
|
|
|
- {
|
|
|
+ } else if (StringUtils.isNotEmpty(loginName)) {
|
|
|
+ if (StringUtils.equals(loginName, user.getLoginName())) {
|
|
|
sessionList.add(user);
|
|
|
}
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
+ } else {
|
|
|
sessionList.add(user);
|
|
|
}
|
|
|
}
|
|
|
@@ -98,14 +85,11 @@ public class SysUserOnlineController extends BaseController {
|
|
|
@Log(title = "在线用户", businessType = BusinessType.FORCE)
|
|
|
@PostMapping("/batchForceLogout")
|
|
|
@ResponseBody
|
|
|
- public AjaxResult batchForceLogout(@RequestBody List<SysUserOnline> sysUserOnlines)
|
|
|
- {
|
|
|
- for (SysUserOnline userOnline : sysUserOnlines)
|
|
|
- {
|
|
|
+ public AjaxResult batchForceLogout(@RequestBody List<SysUserOnline> sysUserOnlines) {
|
|
|
+ for (SysUserOnline userOnline : sysUserOnlines) {
|
|
|
String sessionId = userOnline.getSessionId();
|
|
|
String loginName = userOnline.getLoginName();
|
|
|
- if (sessionId.equals(ShiroUtils.getSessionId()))
|
|
|
- {
|
|
|
+ if (sessionId.equals(ShiroUtils.getSessionId())) {
|
|
|
return error("当前登录用户无法强退");
|
|
|
}
|
|
|
redisSessionDAO.delete(redisSessionDAO.readSession(sessionId));
|
|
|
@@ -114,25 +98,20 @@ public class SysUserOnlineController extends BaseController {
|
|
|
return success();
|
|
|
}
|
|
|
|
|
|
- private SysUserOnline getSession(Session session)
|
|
|
- {
|
|
|
+ private SysUserOnline getSession(Session session) {
|
|
|
Object obj = session.getAttribute(DefaultSubjectContext.PRINCIPALS_SESSION_KEY);
|
|
|
- if (null == obj)
|
|
|
- {
|
|
|
+ if (null == obj) {
|
|
|
return null;
|
|
|
}
|
|
|
- if (obj instanceof SimplePrincipalCollection)
|
|
|
- {
|
|
|
+ if (obj instanceof SimplePrincipalCollection) {
|
|
|
SimplePrincipalCollection spc = (SimplePrincipalCollection) obj;
|
|
|
obj = spc.getPrimaryPrincipal();
|
|
|
- if (null != obj && obj instanceof SysUser)
|
|
|
- {
|
|
|
+ if (obj instanceof SysUser) {
|
|
|
SysUser sysUser = (SysUser) obj;
|
|
|
SysUserOnline userOnline = new SysUserOnline();
|
|
|
userOnline.setSessionId(session.getId().toString());
|
|
|
userOnline.setLoginName(sysUser.getLoginName());
|
|
|
- if (StringUtils.isNotNull(sysUser.getDept()) && StringUtils.isNotEmpty(sysUser.getDept().getDeptName()))
|
|
|
- {
|
|
|
+ if (StringUtils.isNotNull(sysUser.getDept()) && StringUtils.isNotEmpty(sysUser.getDept().getDeptName())) {
|
|
|
userOnline.setDeptName(sysUser.getDept().getDeptName());
|
|
|
}
|
|
|
userOnline.setIpaddr(session.getHost());
|
|
|
@@ -144,12 +123,10 @@ public class SysUserOnlineController extends BaseController {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- public void removeUserCache(String loginName, String sessionId)
|
|
|
- {
|
|
|
+ public void removeUserCache(String loginName, String sessionId) {
|
|
|
Cache<String, Deque<Serializable>> cache = SpringUtils.getBean(RedisCacheManager.class).getCache(ShiroConstants.SYS_USERCACHE);
|
|
|
Deque<Serializable> deque = cache.get(loginName);
|
|
|
- if (StringUtils.isEmpty(deque) || deque.size() == 0)
|
|
|
- {
|
|
|
+ if (StringUtils.isEmpty(deque) || deque.size() == 0) {
|
|
|
return;
|
|
|
}
|
|
|
deque.remove(sessionId);
|