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: 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..0b3b4970 --- /dev/null +++ b/jaknaeso-server/src/main/java/org/nexters/jaknaesoserver/config/CorsConfig.java @@ -0,0 +1,32 @@ +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("*"); + + 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("*"); - } -}