CORS(교차 출처 리소스 공유)는 웹 브라우저의 보안 정책인 동일 출처 정책(Same-Origin Policy)을 완화하여, 다른 출처(도메인, 스킴, 포트)의 리소스에 접근할 수 있도록 서버가 브라우저에 권한을 부여하는 메커니즘이다.
즉, 외부에서 api 요청할 때, 해줄지 말지를 정할 수 있게 해준다는 소리다. 로컬에서만 쓰고 말 프로젝트가 아니라면 꼭 필요!
코드를 보자.
@Configuration
public class WebConfig {
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:3000")
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
.allowCredentials(true);
}
};
}
}
이 코드를 보면 지금 http://localhost:3000에서 오는 "GET", "POST", "PUT", "DELETE" 요청은 허용하고 있음을 알 수 있다.
이 조건을 커스텀 하여 프로젝트에 알맞게 사용해보자.