Explorar el Código

新增工具类方法

tsurumure hace 10 meses
padre
commit
d9885e46c2

+ 27 - 5
src/main/java/com/backendsys/config/Security/utils/SecurityUtil.java

@@ -16,6 +16,7 @@ import javax.crypto.SecretKey;
 import javax.crypto.spec.SecretKeySpec;
 import java.nio.charset.StandardCharsets;
 import java.util.Base64;
+import java.util.List;
 import java.util.Map;
 
 public class SecurityUtil {
@@ -58,11 +59,32 @@ public class SecurityUtil {
     }
 
 
-
-    public static Object getPrincipal() {
-        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        Object principal = authentication.getPrincipal();
-        return principal;
+    /**
+     * 判断是否具备权限,或者是超级管理员
+     */
+    public static Boolean hasPermission(String permission) {
+        SecurityUserInfo userInfo = getUserInfo();
+        List<String> modules = userInfo.getModules();
+        return modules.contains(permission);
+    }
+    public static Boolean hasPermissions(List<String> permissions) {
+        SecurityUserInfo userInfo = getUserInfo();
+        List<String> modules = userInfo.getModules();
+        return permissions.stream().allMatch(modules::contains);
     }
+    /**
+     * 判断是否超级管理员
+     */
+    public static Boolean isSuper() {
+        SecurityUserInfo userInfo = getUserInfo();
+        return userInfo.getIs_super() == 1;
+    }
+
+
+//    public static Object getPrincipal() {
+//        Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+//        Object principal = authentication.getPrincipal();
+//        return principal;
+//    }
 
 }

+ 3 - 2
src/main/java/com/backendsys/modules/system/controller/SysUserV2Controller.java

@@ -28,8 +28,9 @@ public class SysUserV2Controller {
 //        System.out.println(SecurityUtil.getToken());
         System.out.println("UserId: " + SecurityUtil.getUserId());
 
-        // 判断是否具备权限,或者是超级管理员
-
+        // 判断是否具备权限,或者是超级管理员 (重构)
+        System.out.println("hasPermission(\"3.2.1\"): " + SecurityUtil.hasPermission("3.2.1"));
+        System.out.println("isSuper: " + SecurityUtil.isSuper());
 
         return Result.success().put("data", sysUserV2Service.selectUserInfo(user_id));
     }