CORS
24 Jul 2022CORS
CORS(Cross-Origin Resource Sharing) 직역하면 교차 출처 리소스 공유인데(심지어 리소스는 그냥 영어잖아) HTTP 헤더를 사용해서 A 출처에서 실행 중인 웹 애플리케이션이 B 출처의 리소스에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제라고 한다.
주로 프론트엔드 서버 - 백엔드 서버간 통신을 해야할 때 보안상의 이유로 설정해줘야 한다. 허락 받은 프론트엔드만 백엔드 서버의 응답을 받을 수 있다는 것.
이를 위한 Spring 설정은
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://xx.xxx.xxx.xx:port"); //프론트엔드 서버
}
}
이렇게 설정을 해주고 만약 스프링 시큐리티를 사용한다면 WebSecurityConfigurerAdapter를 상속하는 클래스에 http.cors() 메소드를 사용해주고 위에서 만든 addCorsMappings를 override해주면 되겠다.
출처 : [Spring] 스프링의 CORS설정, SpringBoot에서 CORS할 때 header, preflight 이슈 해결하기, CORS는 왜 이렇게 우리를 힘들게 하는걸까?