From d7ea23ab5de44dc7c84a0cde255abd91981c8512 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 14 九月 2026 20:45:14 +0800
Subject: [PATCH] fix(cors): 放行本机任意调试端口,并修正两个小程序的服务端地址
---
talent-card-server/src/main/java/com/talentcard/server/config/ApiCorsConfig.java | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/talent-card-server/src/main/java/com/talentcard/server/config/ApiCorsConfig.java b/talent-card-server/src/main/java/com/talentcard/server/config/ApiCorsConfig.java
index 1cde454..77c5b90 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/config/ApiCorsConfig.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/config/ApiCorsConfig.java
@@ -13,10 +13,14 @@
@Configuration
public class ApiCorsConfig {
@Bean
- public CorsFilter apiCorsFilter(@Value("${app.cors.allowed-origins:}") String allowedOrigins) {
+ public CorsFilter apiCorsFilter(
+ @Value("${app.cors.allowed-origins:}") String allowedOrigins,
+ @Value("${app.cors.allowed-origin-patterns:}") String allowedOriginPatterns) {
CorsConfiguration cors = new CorsConfiguration();
- cors.setAllowedOrigins(Arrays.stream(allowedOrigins.split(","))
- .map(String::trim).filter(origin -> !origin.isEmpty()).toList());
+ cors.setAllowedOrigins(split(allowedOrigins));
+ // 本地开发工具的端口是随机的(微信开发者工具每次启动都换一个),写死端口必然漏。
+ // 用 origin 通配覆盖本机各种调试端口,真实域名仍走上面的精确白名单。
+ cors.setAllowedOriginPatterns(split(allowedOriginPatterns));
cors.setAllowedMethods(List.of("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"));
cors.setAllowedHeaders(List.of("Content-Type", "Authorization", "X-Request-Id",
"X-Client-Platform", "X-Client-Version", "X-Merchant-Store-Id", "X-Idempotency-Key"));
@@ -27,4 +31,8 @@
// Complete browser preflight before MVC authentication interceptors run.
return new CorsFilter(source);
}
+
+ private static List<String> split(String values) {
+ return Arrays.stream(values.split(",")).map(String::trim).filter(value -> !value.isEmpty()).toList();
+ }
}
--
Gitblit v1.7.1