From 74b0e0814e37d640596f44ec86d20fa9ecce9ed6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 05 二月 2025 10:42:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
index fa04637..2cde5b4 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/auth/AuthLogic.java
+++ b/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)

--
Gitblit v1.7.1