From 1d56a5e727f58e82f06907b7d6ec717006ce6daa Mon Sep 17 00:00:00 2001
From: liwq <122639653@qq.com>
Date: Thu, 22 May 2025 16:26:40 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A1=86=E6=9E=B6=EF=BC=8C?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E7=BB=84?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tashow-module/tashow-module-app/pom.xml | 4 ++
.../config/SecurityConfiguration.java | 50 +++++++++++++++++++
.../cloud/app/security/core/package-info.java | 4 ++
.../src/main/resources/application.yaml | 2 +-
4 files changed, 59 insertions(+), 1 deletion(-)
create mode 100644 tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/config/SecurityConfiguration.java
create mode 100644 tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/core/package-info.java
diff --git a/tashow-module/tashow-module-app/pom.xml b/tashow-module/tashow-module-app/pom.xml
index 29e4b48..dfa0c20 100644
--- a/tashow-module/tashow-module-app/pom.xml
+++ b/tashow-module/tashow-module-app/pom.xml
@@ -24,5 +24,9 @@
com.tashow.cloud
tashow-data-redis
+
+ com.tashow.cloud
+ tashow-framework-security
+
diff --git a/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/config/SecurityConfiguration.java b/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/config/SecurityConfiguration.java
new file mode 100644
index 0000000..693e32b
--- /dev/null
+++ b/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/config/SecurityConfiguration.java
@@ -0,0 +1,50 @@
+package com.tashow.cloud.app.security.config;
+
+import com.tashow.cloud.infraapi.enums.ApiConstants;
+import com.tashow.cloud.security.security.config.AuthorizeRequestsCustomizer;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer;
+
+/**
+ * Infra 模块的 Security 配置
+ */
+@Configuration(proxyBeanMethods = false, value = "infraSecurityConfiguration")
+public class SecurityConfiguration {
+
+ @Value("${spring.boot.admin.context-path:''}")
+ private String adminSeverContextPath;
+
+ @Bean("infraAuthorizeRequestsCustomizer")
+ public AuthorizeRequestsCustomizer authorizeRequestsCustomizer() {
+ return new AuthorizeRequestsCustomizer() {
+
+ @Override
+ public void customize(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry registry) {
+ // Swagger 接口文档
+ registry.requestMatchers("/v3/api-docs/**").permitAll()
+ .requestMatchers("/webjars/**").permitAll()
+ .requestMatchers("/swagger-ui").permitAll()
+ .requestMatchers("/swagger-ui/**").permitAll();
+ // Spring Boot Actuator 的安全配置
+ registry.requestMatchers("/actuator").permitAll()
+ .requestMatchers("/actuator/**").permitAll();
+ // Druid 监控
+ registry.requestMatchers("/druid/**").permitAll();
+ // Spring Boot Admin Server 的安全配置
+ registry.requestMatchers(adminSeverContextPath).permitAll()
+ .requestMatchers(adminSeverContextPath + "/**").permitAll();
+ // 文件读取
+ registry.requestMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll();
+
+ // TODO 芋艿:这个每个项目都需要重复配置,得捉摸有没通用的方案
+ // RPC 服务的安全配置
+ registry.requestMatchers(ApiConstants.PREFIX + "/**").permitAll();
+ }
+
+ };
+ }
+
+}
diff --git a/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/core/package-info.java b/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/core/package-info.java
new file mode 100644
index 0000000..93a4969
--- /dev/null
+++ b/tashow-module/tashow-module-app/src/main/java/com/tashow/cloud/app/security/core/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 占位
+ */
+package com.tashow.cloud.app.security.core;
diff --git a/tashow-module/tashow-module-app/src/main/resources/application.yaml b/tashow-module/tashow-module-app/src/main/resources/application.yaml
index 7110ccb..e9de0d5 100644
--- a/tashow-module/tashow-module-app/src/main/resources/application.yaml
+++ b/tashow-module/tashow-module-app/src/main/resources/application.yaml
@@ -1,5 +1,5 @@
server:
- port: 48082
+ port: 48083
spring:
application:
name: app-server