/** * Cors Global 처리 */ UrlBasedCorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); configuration.setAllowedOrigins(List.of("http://localhost:3000")); configuration.setAllowedMethods( List.of("GET", "POST", "PUT", "DELETE")); // 모든 메소드 허용 configuration.setAllowedHeaders(List.of("*")); // 모든 헤더 허용 configuration.setAllowCredentials(true); // 자격 증명 허용 UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", configuration); // 모든 경로에 대해 적용 return source; }
Http security 설정 등록
@Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // CSRF 설정 및 시큐리티 기본 설정 비활성화 http.csrf(AbstractHttpConfigurer::disable); http.cors(cors -> cors.configurationSource(corsConfigurationSource())); ... 추가 인증 정보 등록}
주의 사항
CorsFilterChain을 사용하는데 Filter Chain의 순서가 뒤집힐 수 있으니 주의하자.