puzhibing
2025-02-05 74b0e0814e37d640596f44ec86d20fa9ecce9ed6
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
@@ -3,6 +3,12 @@
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import com.ruoyi.common.core.utils.JwtUtils;
import com.ruoyi.common.security.handler.GlobalExceptionHandler;
import io.jsonwebtoken.Claims;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.PatternMatchUtils;
import com.ruoyi.common.core.context.SecurityContextHolder;
import com.ruoyi.common.core.exception.auth.NotLoginException;
@@ -25,6 +31,7 @@
 */
public class AuthLogic
{
    private static final Logger log = LoggerFactory.getLogger(AuthLogic.class);
    /** 所有权限标识 */
    private static final String ALL_PERMISSION = "*:*:*";
@@ -74,11 +81,17 @@
        {
            throw new NotLoginException("未提供token");
        }
        Claims claims = JwtUtils.parseToken(token);
        String userType = JwtUtils.getUserType(claims);
        LoginUser loginUser = SecurityUtils.getLoginUser();
        if (loginUser == null)
        if (loginUser == null && "system".equals(userType))
        {
            throw new NotLoginException("无效的token");
        }
        if(loginUser == null && "applet".equals(userType)){
            loginUser = new LoginUser();
        }
        loginUser.setUserType(userType);
        return loginUser;
    }
@@ -154,6 +167,9 @@
    public void checkPermiAnd(String... permissions)
    {
        Set<String> permissionList = getPermiList();
        if(null == permissionList || permissionList.size() == 0){
            return;
        }
        for (String permission : permissions)
        {
            if (!hasPermi(permissionList, permission))
@@ -337,6 +353,9 @@
        try
        {
            LoginUser loginUser = getLoginUser();
            if(null == loginUser.getPermissions()){
                return new HashSet<>();
            }
            return loginUser.getPermissions();
        }
        catch (Exception e)