728x90
반응형
CORS란?
Cross-Origin Resource Sharing(CORS)
교차출처 리소스 공유 서로 다른 도메인끼리 다른 도메인의 요청을 허용하도록 하는 구조를 말한다.
허용하기 위해서도 사용하지만 다른 도메인에서 쓰지 못하도록 제한하는 데도 사용한다.
요청헤더
- Origin
- Access-Control-Request-Method
- Access-Control-Request-Headers
응답헤더
- Access-Control-Allow-Origin
- Access-Control-Allow-Credentials
- Access-Control-Expose-Headers
- Access-Control-Max-Age
- Access-Control-Allow-Methods
- Access-Control-Allow-Headers
SpringBoot에서 CORS설정하는 방법
SpringBoot에서 @EnableWebMvc 를 사용하면 스프링MVC에 기본적인 설정이 자동으로 된다.
(@EnableWebMvc -> DelegatingWebMvcConfiguration -> WebMvcConfigurationSupport)
> 내부 로직에 들어가보면 Spring config의 기본적인 것들을 자동 설정해준다.
DelegatingWebMvcConfiguration을 통해 스프링 설정을 재정의해서 쓸 수 있는데 이때 WebMvcConfigurer를 상속받아서
오버라이딩하면 된다.
CORS도 기본 구성이 있기 때문에 오버라이딩해서 재정의하면 된다.
오버라이딩해서 사용할 수 있는 메소드를 확인할 수 있다.
기본 설정은 다음과 같다.
- Allow all origins with the special value "*" defined in the CORS spec. This is set only if neither origins nor originPatterns are already set.
- Allow "simple" methods GET, HEAD and POST.
- Allow all headers.
- Set max age to 1800 seconds (30 minutes).
오버라이딩하는 방법
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*");
}
}
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("HEAD", "POST", "GET", "OPTIONS", "DELETE");
}
}
728x90
반응형
'Spring' 카테고리의 다른 글
SpringBoot @Conditional 에 대해 알아보자 (0) | 2021.01.09 |
---|---|
SpringBoot @EnableEncryptableProperties 스프링에서 암호화를 써보자 (0) | 2021.01.08 |
SpringBootServletInitializer 란 무엇일까? 왜쓰지? (0) | 2021.01.07 |
Spring Cloud Gateway GatewayFilter (0) | 2020.12.29 |
Spring Cloud Gateway predicates 테스트 (0) | 2020.12.29 |