From 03f3d94f0cd4ef34675cdcb223a8793e778edeaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=BE=E8=BE=89=E8=BE=89?= Date: Mon, 11 Mar 2024 15:23:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=AF=8F=E4=B8=AA=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E9=87=8D=E5=A4=8D=E9=85=8D=E7=BD=AESecurityConfigurat?= =?UTF-8?q?ion=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=BD=93=E6=9C=89?= =?UTF-8?q?=E7=89=B9=E6=AE=8A=E7=9A=84=E5=AE=89=E5=85=A8=E6=96=B9=E6=A1=88?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=AF=8F=E4=B8=AA=E9=A1=B9=E7=9B=AE=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E5=AE=9A=E4=B9=89=E8=87=AA=E5=B7=B1=E7=8B=AC=E7=89=B9?= =?UTF-8?q?=E7=9A=84bean=EF=BC=8Cbean=E5=90=8D=E7=A7=B0=E5=89=8D=E7=BC=80?= =?UTF-8?q?=E6=8C=89=E7=85=A7=E5=BA=94=E7=94=A8=E5=90=8D=E7=A7=B0=E8=B5=B7?= =?UTF-8?q?=E5=90=8D=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../YudaoSecurityAutoConfiguration.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java index 70d2b74f2..f4296163c 100644 --- a/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java +++ b/yudao-framework/yudao-spring-boot-starter-security/src/main/java/cn/iocoder/yudao/framework/security/config/YudaoSecurityAutoConfiguration.java @@ -14,6 +14,8 @@ import org.springframework.beans.factory.config.MethodInvokingFactoryBean; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; @@ -98,5 +100,25 @@ public class YudaoSecurityAutoConfiguration { methodInvokingFactoryBean.setArguments(TransmittableThreadLocalSecurityContextHolderStrategy.class.getName()); return methodInvokingFactoryBean; } + /** + * 所有项目的通用的配置方案,当有特殊的安全方案时,每个项目可以定义自己独特的bean,bean名称前缀按照应用名称起名, + */ + @Bean("defaultAuthorizeRequestsCustomizer") + public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() { + return new AuthorizeRequestsCustomizer() { + @Override + public void customize(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry registry) { + // Swagger 接口文档 + registry.requestMatchers("/v3/api-docs/**").permitAll() // 元数据 + .requestMatchers("/swagger-ui.html").permitAll(); // Swagger UI + // Druid 监控 + registry.requestMatchers("/druid/**").permitAll(); + // Spring Boot Actuator 的安全配置 + registry.requestMatchers("/actuator").permitAll() + .requestMatchers("/actuator/**").permitAll(); + } + + }; + } }