xuhy
9 天以前 7834ca58d2ac1d9a3ba85f20ca03a8c902d0d6a9
自动退出修改
3个文件已修改
51 ■■■■■ 已修改文件
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/filter/RequestFilterConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
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;
    }
}
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));