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