From 052069a2dfca938195787680bfa5d82d4bda8f3f Mon Sep 17 00:00:00 2001
From: ageerle <32251822+ageerle@users.noreply.github.com>
Date: 星期五, 16 五月 2025 22:11:41 +0800
Subject: [PATCH] Merge pull request #85 from MuSan-Li/feature_20250516_fix_auth

---
 ruoyi-common/ruoyi-common-security/src/main/java/org/ruoyi/common/security/handler/AllUrlHandler.java |   30 ++++++++++++++++--------------
 1 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/org/ruoyi/common/security/handler/AllUrlHandler.java b/ruoyi-common/ruoyi-common-security/src/main/java/org/ruoyi/common/security/handler/AllUrlHandler.java
index 4be94b2..6537d39 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/org/ruoyi/common/security/handler/AllUrlHandler.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/org/ruoyi/common/security/handler/AllUrlHandler.java
@@ -10,6 +10,7 @@
 
 import java.util.*;
 import java.util.regex.Pattern;
+import java.util.stream.Collectors;
 
 /**
  * 鑾峰彇鎵�鏈塙rl閰嶇疆
@@ -19,23 +20,24 @@
 @Data
 public class AllUrlHandler implements InitializingBean {
 
-    private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}");
-
-    private List<String> urls = new ArrayList<>();
+    private List<String> urls = new ArrayList<>(256);
 
     @Override
     public void afterPropertiesSet() {
-        Set<String> set = new HashSet<>();
-        RequestMappingHandlerMapping mapping = SpringUtils.getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class);
-        Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods();
-        map.keySet().forEach(info -> {
-            // 鑾峰彇娉ㄨВ涓婅竟鐨� path 鏇夸唬 path variable 涓� *
-            if(info.getPathPatternsCondition()!=null){
-                Objects.requireNonNull(info.getPathPatternsCondition().getPatterns())
-                    .forEach(url -> set.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, "*")));
-            }
-        });
-        urls.addAll(set);
+        String name = "requestMappingHandlerMapping";
+        RequestMappingHandlerMapping mapping = SpringUtils.getBean(name, RequestMappingHandlerMapping.class);
+
+        Map<RequestMappingInfo, HandlerMethod> handlerMethods = mapping.getHandlerMethods();
+
+        Pattern pattern = Pattern.compile("\\{(.*?)\\}");
+
+        Set<String> handlerSet = handlerMethods.keySet().stream()
+                .flatMap(info -> info.getPatternsCondition().getPatterns().stream())
+                .collect(Collectors.toSet());
+
+        // 鑾峰彇娉ㄨВ涓婅竟鐨� path 鏇夸唬 path variable 涓� *
+        handlerSet.stream().map(path -> ReUtil.replaceAll(path, pattern, "*"))
+                .forEach(item -> urls.add(item));
     }
 
 }

--
Gitblit v1.9.3