From 20be042672b4ae78ab9aee1982e9ccb4bf791689 Mon Sep 17 00:00:00 2001 From: pythonstrup Date: Thu, 6 Feb 2025 22:55:11 +0900 Subject: [PATCH 1/3] =?UTF-8?q?[#64]=20fix:=20cors=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jaknaesoserver/config/CorsConfig.java | 33 +++++++++++++++++++ .../jaknaesoserver/config/SecurityConfig.java | 3 ++ .../jaknaesoserver/config/WebMvcConfig.java | 25 -------------- 3 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java delete mode 100644 jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/WebMvcConfig.java diff --git a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java new file mode 100644 index 00000000..0015295e --- /dev/null +++ b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java @@ -0,0 +1,33 @@ +package org.nexters.jaknaesoserver.config; + +import java.util.List; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +@Configuration +public class CorsConfig { + + private static final String LOCAL_URL = "http://localhost:3000"; + private static final String JAKNAESO_WEB_VERCEL_APP = "https://jaknaeso-web.vercel.app"; + + @Value("${cors.origins.api-doc}") + private String API_DOC_HOST; + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + + final CorsConfiguration corsConfiguration = new CorsConfiguration(); + corsConfiguration.setAllowedOrigins(List.of(API_DOC_HOST, LOCAL_URL, JAKNAESO_WEB_VERCEL_APP)); + corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "PATCH", "DELETE")); + corsConfiguration.addAllowedHeader("*"); + corsConfiguration.setAllowCredentials(true); + + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", corsConfiguration); + return source; + } +} diff --git a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/SecurityConfig.java b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/SecurityConfig.java index ab82f675..30af3a1c 100644 --- a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/SecurityConfig.java +++ b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/SecurityConfig.java @@ -12,6 +12,7 @@ import org.springframework.security.config.http.SessionCreationPolicy; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.cors.CorsConfigurationSource; @RequiredArgsConstructor @EnableWebSecurity @@ -20,6 +21,7 @@ public class SecurityConfig { private final SecurityExceptionHandler securityExceptionHandler; private final JwtAuthFilter jwtAuthFilter; + private final CorsConfigurationSource corsConfigurationSource; @Bean public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception { @@ -32,6 +34,7 @@ public SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Excepti .permitAll() .anyRequest() .authenticated()) + .cors(corsConfigurer -> corsConfigurer.configurationSource(corsConfigurationSource)) .formLogin(AbstractHttpConfigurer::disable) .logout(AbstractHttpConfigurer::disable) .httpBasic(AbstractHttpConfigurer::disable) diff --git a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/WebMvcConfig.java b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/WebMvcConfig.java deleted file mode 100644 index daf416c7..00000000 --- a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/WebMvcConfig.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.nexters.jaknaesoserver.config; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.CorsRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class WebMvcConfig implements WebMvcConfigurer { - - private static final String LOCAL_URL = "http://localhost:3000"; - private static final String JAKNAESO_WEB_VERCEL_APP = "https://jaknaeso-web.vercel.app"; - - @Value("${cors.origins.api-doc}") - private String API_DOC_HOST; - - @Override - public void addCorsMappings(CorsRegistry registry) { - registry - .addMapping("/**") - .allowedOrigins(API_DOC_HOST, LOCAL_URL, JAKNAESO_WEB_VERCEL_APP) - .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE") - .allowedHeaders("*"); - } -} From 45f9d7d27bdb8c7420e6da4d031e51d0c6f7d0c1 Mon Sep 17 00:00:00 2001 From: pythonstrup Date: Thu, 6 Feb 2025 22:56:32 +0900 Subject: [PATCH 2/3] =?UTF-8?q?[#64]=20chore:=20docker-compose=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=20=ED=83=80=EC=9E=84=EC=A1=B4=20=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index b154f5e6..0a154842 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -31,6 +31,7 @@ services: KAKAO_LOGIN_CLIENT_ID: ${KAKAO_LOGIN_CLIENT_ID} KAKAO_LOGIN_CLIENT_SECRET: ${KAKAO_LOGIN_CLIENT_SECRET} SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE} + TZ: Asia/Seoul volumes: - /var/log/jaknaeso:/var/log/jaknaeso depends_on: From ed25b652a1df8036541367d3c6e7efe9a47fbb97 Mon Sep 17 00:00:00 2001 From: pythonstrup Date: Thu, 6 Feb 2025 23:03:59 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[#64]=20chore:=20=EC=BF=A0=ED=82=A4=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/org/nexters/jaknaesoserver/config/CorsConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java index 0015295e..0b3b4970 100644 --- a/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java +++ b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java @@ -24,7 +24,6 @@ public CorsConfigurationSource corsConfigurationSource() { corsConfiguration.setAllowedOrigins(List.of(API_DOC_HOST, LOCAL_URL, JAKNAESO_WEB_VERCEL_APP)); corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "PATCH", "DELETE")); corsConfiguration.addAllowedHeader("*"); - corsConfiguration.setAllowCredentials(true); UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", corsConfiguration);