프론트와 백엔드를 연결하는 과정에서, CORS를 설정해줄 필요가 있었다.
CORS가 무엇인지, 어떠한 원리인지, 결국 서버는 어떻게 설정해줘야 하는지에 대해 간략하게 알아보는 시간을 가져보겠다.
setAllowedOriginPatterns()
메소드를 통해 출처를 등록해줄 수 있다.@Configuration
@EnableWebSecurity
public class WebSecurityConfig {
private CorsConfigurationSource configurationSource() {
return request -> {
CorsConfiguration config = new CorsConfiguration();
config.setAllowedHeaders(Collections.singletonList("*"));
config.setAllowedMethods(Collections.singletonList("*"));
config.setAllowedOriginPatterns(Arrays.asList(
"http://localhost:5173",
"https://test.netlify.app",
"https://test2.netlify.app",
"https://test3.netlify.app"
));
config.setAllowCredentials(true);
config.setMaxAge(CORS_MAX_AGE_SEC);
return config;
};
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.cors(cors -> cors.configurationSource(configurationSource()));
return http.build();
}
}