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