From f0676058e45f3e0a36da20883a7b9cda3c7eb11a Mon Sep 17 00:00:00 2001 From: hyeonji91 <112065014+hyeonji91@users.noreply.github.com> Date: Sat, 17 Feb 2024 08:43:17 +0900 Subject: [PATCH] cors3 --- .../java/umc/beanstalk/config/CorsConfig.java | 23 ------------- .../java/umc/beanstalk/config/WebConfig.java | 34 +++++++++++++++++++ src/main/resources/application.yml | 3 ++ 3 files changed, 37 insertions(+), 23 deletions(-) delete mode 100644 src/main/java/umc/beanstalk/config/CorsConfig.java create mode 100644 src/main/java/umc/beanstalk/config/WebConfig.java diff --git a/src/main/java/umc/beanstalk/config/CorsConfig.java b/src/main/java/umc/beanstalk/config/CorsConfig.java deleted file mode 100644 index dd3fc04..0000000 --- a/src/main/java/umc/beanstalk/config/CorsConfig.java +++ /dev/null @@ -1,23 +0,0 @@ -package umc.beanstalk.config; - -import org.apache.catalina.filters.CorsFilter; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.cors.CorsConfiguration; -import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; - -@Configuration -public class CorsConfig { - - @Bean - public CorsFilter corsFilter() { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); - CorsConfiguration config = new CorsConfiguration(); - config.setAllowCredentials(true); // 내 서버가 응답을 할 때 JSON을 자바스크립트에서 처리할 수 있게 할지를 설정하는 것 - config.addAllowedOriginPattern(""); // 모든 IP 응답을 허용 - config.addAllowedHeader(""); // 모든 헤더의 응답을 허용 - config.addAllowedMethod("*"); // 모든 HTTP Method 요청을 허용 - source.registerCorsConfiguration("/api/v1/**", config); - return new CorsFilter(); - } -} \ No newline at end of file diff --git a/src/main/java/umc/beanstalk/config/WebConfig.java b/src/main/java/umc/beanstalk/config/WebConfig.java new file mode 100644 index 0000000..45fd63e --- /dev/null +++ b/src/main/java/umc/beanstalk/config/WebConfig.java @@ -0,0 +1,34 @@ +package umc.beanstalk.config; + +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.HttpHeaders; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + private final List allowOriginUrlPatterns; + + public WebConfig(@Value("${cors.allow-origin.urls}") String allowOriginUrlPatterns) { + this.allowOriginUrlPatterns = Stream.of(allowOriginUrlPatterns.split(",")) + .map(String::strip) + .collect(Collectors.toList()); + } + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedMethods("*") + .exposedHeaders(HttpHeaders.LOCATION) + .allowedHeaders("Authorization", "Content-Type") + .allowCredentials(true) + .allowedOriginPatterns(allowOriginUrlPatterns.toArray(new String[0])) + .maxAge(3600); + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 972c085..d3c8fa4 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -35,3 +35,6 @@ cloud: secretKey: ${AWS_SECRET_ACCESS_KEY} +cors: + allow-origin: + urls: "*" \ No newline at end of file