ruoyi-admin/src/main/resources/application.yml
@@ -127,8 +127,10 @@ - /**/*.html - /**/*.css - /**/*.js # swagger ææ¡£é ç½® # å ¬å ±è·¯å¾ - /favicon.ico - /error # swagger ææ¡£é ç½® - /*/api-docs - /*/api-docs/** # actuator çæ§é ç½® ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/config/SecurityConfig.java
@@ -3,7 +3,9 @@ import cn.dev33.satoken.interceptor.SaInterceptor; import cn.dev33.satoken.router.SaRouter; import cn.dev33.satoken.stp.StpUtil; import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.common.security.config.properties.SecurityProperties; import com.ruoyi.common.security.handler.AllUrlHandler; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.autoconfigure.AutoConfiguration; @@ -32,10 +34,11 @@ public void addInterceptors(InterceptorRegistry registry) { // 注åè·¯ç±æ¦æªå¨ï¼èªå®ä¹éªè¯è§å registry.addInterceptor(new SaInterceptor(handler -> { AllUrlHandler allUrlHandler = SpringUtils.getBean(AllUrlHandler.class); // ç»å½éªè¯ -- æé¤å¤ä¸ªè·¯å¾ SaRouter // è·åææç .match("/**") .match(allUrlHandler.getUrls()) // å¯¹æªæé¤çè·¯å¾è¿è¡æ£æ¥ .check(() -> { // æ£æ¥æ¯å¦ç»å½ æ¯å¦ætoken ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/AllUrlHandler.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,43 @@ package com.ruoyi.common.security.handler; import cn.hutool.core.util.ReUtil; import com.ruoyi.common.core.utils.SpringUtils; import lombok.Data; import org.springframework.beans.factory.InitializingBean; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.regex.Pattern; /** * è·åææUrlé ç½® * * @author Lion Li */ @Data public class AllUrlHandler implements InitializingBean { private static final Pattern PATTERN = Pattern.compile("\\{(.*?)\\}"); private List<String> urls = new ArrayList<>(); @Override public void afterPropertiesSet() { RequestMappingHandlerMapping mapping = SpringUtils.getBean("requestMappingHandlerMapping", RequestMappingHandlerMapping.class); Map<RequestMappingInfo, HandlerMethod> map = mapping.getHandlerMethods(); map.keySet().forEach(info -> { // è·åæ¹æ³ä¸è¾¹ç注解 æ¿ä»£path variable 为 * Objects.requireNonNull(info.getPathPatternsCondition().getPatterns()) .forEach(url -> urls.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, "*"))); // è·åç±»ä¸è¾¹ç注解, æ¿ä»£path variable 为 * Objects.requireNonNull(info.getPathPatternsCondition().getPatterns()) .forEach(url -> urls.add(ReUtil.replaceAll(url.getPatternString(), PATTERN, "*"))); }); } } ruoyi-common/ruoyi-common-security/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,2 +1,3 @@ com.ruoyi.common.security.handler.GlobalExceptionHandler com.ruoyi.common.security.handler.AllUrlHandler com.ruoyi.common.security.config.SecurityConfig