疯狂的狮子Li
2021-12-09 e442bce6079403323e2ba53c87d3a49325e346f8
update 删除异常用户token
已修改2个文件
5 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -49,6 +49,7 @@
            // 如果已经过期则踢下线
            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));
ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
@@ -4,9 +4,11 @@
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 @@
    @ExceptionHandler(NotLoginException.class)
    public AjaxResult<Void> 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));
    }