无关风月
2024-12-11 4d7a208f388e42e7dd83dab0e38eadfa0847de1c
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))
@@ -171,6 +187,9 @@
    public void checkPermiOr(String... permissions)
    {
        Set<String> permissionList = getPermiList();
        if(null == permissionList){
            return;
        }
        for (String permission : permissions)
        {
            if (hasPermi(permissionList, permission))
@@ -337,6 +356,10 @@
        try
        {
            LoginUser loginUser = getLoginUser();
            String userType = loginUser.getUserType();
            if(null != userType && "applet".equals(userType)){
                return null;
            }
            return loginUser.getPermissions();
        }
        catch (Exception e)