From f7664a2d7e758578f7f5d7c909001883053628fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Thu, 9 Dec 2021 16:08:18 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=9F=A5=E8=AF=A2=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=A3=80=E6=9F=A5=E6=98=AF=E5=90=A6=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E7=A6=BB=E7=BA=BF=20=E5=A6=82=E6=9E=9C=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=88=99=E6=B8=85=E9=99=A4token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/monitor/SysUserOnlineController.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java index 529d5e7de..87400d69d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java @@ -2,6 +2,7 @@ package com.ruoyi.web.controller.monitor; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.exception.NotLoginException; +import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; @@ -45,6 +46,10 @@ public class SysUserOnlineController extends BaseController { List keys = StpUtil.searchTokenValue("", -1, 0); List userOnlineDTOList = new ArrayList<>(); for (String key : keys) { + // 如果已经过期则踢下线 + if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(key) < 0) { + StpUtil.kickoutByTokenValue(key); + } String onlineKey = key.replace(Constants.LOGIN_TOKEN_KEY, Constants.ONLINE_TOKEN_KEY); userOnlineDTOList.add(RedisUtils.getCacheObject(onlineKey)); } @@ -77,7 +82,7 @@ public class SysUserOnlineController extends BaseController { @DeleteMapping("/{tokenId}") public AjaxResult forceLogout(@PathVariable String tokenId) { try { - StpUtil.logoutByTokenValue(tokenId); + StpUtil.kickoutByTokenValue(tokenId); } catch (NotLoginException e) { } return AjaxResult.success();