From e442bce6079403323e2ba53c87d3a49325e346f8 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:21:26 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=88=A0=E9=99=A4=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E7=94=A8=E6=88=B7token?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/web/controller/monitor/SysUserOnlineController.java | 1 + .../ruoyi/framework/web/exception/GlobalExceptionHandler.java | 4 ++++ 2 files changed, 5 insertions(+) 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 87400d69d..eba18ed39 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 @@ -49,6 +49,7 @@ public class SysUserOnlineController extends BaseController { // 如果已经过期则踢下线 if (StpUtil.stpLogic.getTokenActivityTimeoutByToken(key) < 0) { StpUtil.kickoutByTokenValue(key); + continue; } String onlineKey = key.replace(Constants.LOGIN_TOKEN_KEY, Constants.ONLINE_TOKEN_KEY); userOnlineDTOList.add(RedisUtils.getCacheObject(onlineKey)); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index cfa724324..f5e07a013 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -4,9 +4,11 @@ import cn.dev33.satoken.exception.NotLoginException; import cn.dev33.satoken.exception.NotPermissionException; import cn.dev33.satoken.exception.NotRoleException; import cn.hutool.http.HttpStatus; +import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.exception.DemoModeException; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.utils.RedisUtils; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.context.support.DefaultMessageSourceResolvable; @@ -56,6 +58,8 @@ public class GlobalExceptionHandler { @ExceptionHandler(NotLoginException.class) public AjaxResult handleAccessDeniedException(NotLoginException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); + String token = e.getMessage().split(":")[1]; + RedisUtils.deleteObject(Constants.ONLINE_TOKEN_KEY + token); log.error("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI, e.getMessage()); return AjaxResult.error(HttpStatus.HTTP_UNAUTHORIZED, StringUtils.format("请求地址'{}',认证失败'{}',无法访问系统资源", requestURI)); }