From 7834ca58d2ac1d9a3ba85f20ca03a8c902d0d6a9 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 23 七月 2025 10:58:07 +0800
Subject: [PATCH] 自动退出修改

---
 ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java                         |    1 -
 ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java |   37 +++++++++++++++++++++++++++----------
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java                    |   13 ++++---------
 3 files changed, 31 insertions(+), 20 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 30169de..f78876d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -11,7 +11,6 @@
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.common.utils.CodeGenerateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
@@ -87,7 +86,6 @@
         SysUser sysUser = userService.selectUserById(userId);
         SysUserVO sysUserVO = new SysUserVO();
         BeanUtils.copyProperties(sysUser,sysUserVO);
-
         return AjaxResult.success(sysUser);
     }
 
@@ -161,9 +159,7 @@
             return R.fail("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         }
         user.setCreateBy(getUsername());
-        user.setPassword(SecurityUtils.encryptPassword("123456"));
-        user.setRoleType(Integer.parseInt(user.getRoleId().toString()));
-        user.setUserIdentification(CodeGenerateUtils.generateVolumeSn());
+        user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         userService.insertUser(user);
         return R.ok();
     }
@@ -193,7 +189,6 @@
         if(StringUtils.isNotEmpty(user.getPassword())){
             user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         }
-        user.setRoleType(Integer.parseInt(user.getRoleId().toString()));
         return R.ok(userService.updateUser(user));
     }
 
@@ -253,9 +248,9 @@
         user.setOperatingTime(LocalDateTime.now());
         user.setOperatingPerson(sysUser.getNickName()+"("+sysUser.getUserName()+")");
 
-        if(dto.getStatus()==1){
-            redisCache.deleteObject(tokenService.getTokenKey(loginUser.getToken()));
-        }
+//        if(dto.getStatus()==1){
+//            redisCache.deleteObject(tokenService.getTokenKey(loginUser.getToken()));
+//        }
 
         return AjaxResult.success(userService.updateUserStatus(user));
     }
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java
index 1fada65..1a4f55c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java
@@ -14,7 +14,6 @@
         registrationBean.setFilter(new SmCryptoFilter());
         registrationBean.addUrlPatterns("/api/*"); // 根据实际需求调整URL模式
 //        registrationBean.addInitParameter("excludedUrls","/api/*");
-
         return registrationBean;
     }
 }
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
index 9015708..eede085 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
@@ -1,22 +1,25 @@
 package com.ruoyi.framework.security.filter;
 
-import java.io.IOException;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.domain.model.LoginUserApplet;
+import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
 import org.springframework.stereotype.Component;
 import org.springframework.web.filter.OncePerRequestFilter;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.StringUtils;
-import com.ruoyi.framework.web.service.TokenService;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 
 /**
  * token过滤器 验证token有效性
@@ -28,6 +31,10 @@
 {
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private RedisCache redisCache;
+    @Autowired
+    private ISysUserService sysUserService;
 
     @Override
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
@@ -39,6 +46,16 @@
                 StringUtils.isNotNull(applet))
         {
             if (StringUtils.isNotNull(loginUser)){
+                Long userId = loginUser.getUserId();
+                SysUser sysUser = sysUserService.selectUserById(userId);
+                if (StringUtils.isNull(sysUser)){
+                    redisCache.deleteObject(tokenService.getTokenKey(loginUser.getToken()));
+                    return;
+                }
+                if("1".equals(sysUser.getStatus())){
+                    redisCache.deleteObject(tokenService.getTokenKey(loginUser.getToken()));
+                    return;
+                }
                 tokenService.verifyToken(loginUser);
                 UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(loginUser, null, loginUser.getAuthorities());
                 authenticationToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));

--
Gitblit v1.7.1