From 1e06ae9fe7f08ac4b880652a2d00d1d561242223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=8B=A0=EA=B4=80=EA=B7=9C?= Date: Sat, 28 Jun 2025 22:16:12 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20cors=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../payment/common/config/CorsProperties.java | 12 ++++++++++++ .../koreatech/payment/common/config/WebConfig.java | 13 +++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 src/main/java/in/koreatech/payment/common/config/CorsProperties.java diff --git a/src/main/java/in/koreatech/payment/common/config/CorsProperties.java b/src/main/java/in/koreatech/payment/common/config/CorsProperties.java new file mode 100644 index 0000000..99371de --- /dev/null +++ b/src/main/java/in/koreatech/payment/common/config/CorsProperties.java @@ -0,0 +1,12 @@ +package in.koreatech.payment.common.config; + +import java.util.List; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties(prefix = "cors") +public record CorsProperties( + List allowedOrigins +) { + +} diff --git a/src/main/java/in/koreatech/payment/common/config/WebConfig.java b/src/main/java/in/koreatech/payment/common/config/WebConfig.java index 722614a..9924888 100644 --- a/src/main/java/in/koreatech/payment/common/config/WebConfig.java +++ b/src/main/java/in/koreatech/payment/common/config/WebConfig.java @@ -4,6 +4,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.web.method.support.HandlerMethodArgumentResolver; +import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -19,6 +20,8 @@ public class WebConfig implements WebMvcConfigurer { private final AccessTokenArgumentResolver accessTokenArgumentResolver; + private final CorsProperties corsProperties; + @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(extractAccessTokenInterceptor) @@ -30,4 +33,14 @@ public void addInterceptors(InterceptorRegistry registry) { public void addArgumentResolvers(List resolvers) { resolvers.add(accessTokenArgumentResolver); } + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOrigins(corsProperties.allowedOrigins().toArray(new String[0])) + .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH") + .allowedHeaders("*") + .allowCredentials(true) + .maxAge(3600); + } }