SpringSecurity 의 CORS 설정

아래 설정파일을 참고하여 스프링시큐리티에서 CORS를 설정한다.

HttpSecurity http.cors() 설정시 CorsConfigurationSource 빈이 정의되어 있으면 설정을 오버라이드 한다.

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
				// .. 생략
        .and()
            .cors() // 인증과 무관하게 Origin헤더가 있는 모든 요청에 대해 CORS헤더를 포함한 응답을 해준다.
				// .. 생략
    }

    @Bean
    public CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.addAllowedOrigin("*");
        configuration.addAllowedMethod("*");
        configuration.addAllowedHeader("*");
        configuration.setAllowCredentials(true);
        configuration.setMaxAge(3600L);
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }
}

참고 :

https://oddpoet.net/blog/2017/04/27/cors-with-spring-security/