From ce95ec744479f771b731463b5d4dd488939bdde5 Mon Sep 17 00:00:00 2001 From: v-zhangjc9 Date: Fri, 30 May 2025 10:28:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(gateway):=20=E4=BC=98=E5=8C=96cors=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=8C=E7=BD=91=E5=85=B3=E7=BB=9F=E4=B8=80=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/configuration/SecurityConfig.java | 3 ++- service-gateway/pom.xml | 6 +---- .../configuration/SecurityConfiguration.java | 19 +++++++++++++-- .../web/configuration/WebConfiguration.java | 24 ------------------- 4 files changed, 20 insertions(+), 32 deletions(-) delete mode 100644 service-web/src/main/java/com/lanyuanxiaoyao/service/web/configuration/WebConfiguration.java diff --git a/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/SecurityConfig.java b/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/SecurityConfig.java index 2af3253..423af7b 100644 --- a/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/SecurityConfig.java +++ b/service-configuration/src/main/java/com/lanyuanxiaoyao/service/configuration/SecurityConfig.java @@ -21,7 +21,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { private final SecurityProperties securityProperties; - @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection") public SecurityConfig(SecurityProperties securityProperties) { this.securityProperties = securityProperties; } @@ -36,6 +35,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { .and() .csrf() .disable() + .cors() + .disable() .formLogin() .disable(); } diff --git a/service-gateway/pom.xml b/service-gateway/pom.xml index 077d290..e742689 100644 --- a/service-gateway/pom.xml +++ b/service-gateway/pom.xml @@ -14,7 +14,7 @@ com.lanyuanxiaoyao - service-dependencies + service-configuration org.springframework.boot @@ -22,10 +22,6 @@ - - com.lanyuanxiaoyao - service-configuration - org.springframework.cloud spring-cloud-starter-gateway diff --git a/service-gateway/src/main/java/com/lanyuanxiaoyao/service/gateway/configuration/SecurityConfiguration.java b/service-gateway/src/main/java/com/lanyuanxiaoyao/service/gateway/configuration/SecurityConfiguration.java index 8a4a42c..d7449a2 100644 --- a/service-gateway/src/main/java/com/lanyuanxiaoyao/service/gateway/configuration/SecurityConfiguration.java +++ b/service-gateway/src/main/java/com/lanyuanxiaoyao/service/gateway/configuration/SecurityConfiguration.java @@ -9,6 +9,9 @@ import org.springframework.security.core.userdetails.MapReactiveUserDetailsServi import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.web.server.SecurityWebFilterChain; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.reactive.CorsConfigurationSource; +import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; /** * web security @@ -28,14 +31,26 @@ public class SecurityConfiguration { .permitAll() .and() .httpBasic() - .and() - .cors() .disable() + .cors() + .configurationSource(corsConfigurationSource()) + .and() .csrf() .disable() .build(); } + private CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.setAllowCredentials(true); + configuration.addAllowedHeader("*"); + configuration.addAllowedMethod("*"); + configuration.addAllowedOriginPattern("*"); + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } + @Bean public MapReactiveUserDetailsService userDetailsService(SecurityProperties securityProperties) { UserDetails user = User.builder() diff --git a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/configuration/WebConfiguration.java b/service-web/src/main/java/com/lanyuanxiaoyao/service/web/configuration/WebConfiguration.java deleted file mode 100644 index e9472c8..0000000 --- a/service-web/src/main/java/com/lanyuanxiaoyao/service/web/configuration/WebConfiguration.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.lanyuanxiaoyao.service.web.configuration; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -/** - * web 配置 - * - * @author lanyuanxiaoyao - * @date 2023-04-21 - */ -@Configuration -public class WebConfiguration implements WebMvcConfigurer { - @Override - public void addCorsMappings(CorsRegistry registry) { - // 避免跨域影响调试 - registry.addMapping("/**") - .allowedOriginPatterns("*") - .allowCredentials(true) - .allowedMethods("*") - .maxAge(3600); - } -}