01. ORS란?
기본적으로 동일 출처 정책(SOP, Same-origin policy) 웹 통신 시, 다른 도메인 주소끼리는 통신을 하지 못한다.
이때, 다른 도메인 주소 끼리 통신을 하기 위해서는 CORS를 통해야한다.
이때 CORS(Cross-origin Resource Sharing, 교차 출처 리소스 공류)는 서로 다른 도메인끼리 자원을 요청할 수 있도록 허락을 받는 체제를 의미한다.
02. Spring boot에서 CORS 설정하기
기본적으로 스프링부트에서 CORS를 설정하는 방법은 1. 전역적으로 설정하기, 2. 각 Controller에 직접 설정하기 가 있다.
여기서는 전역적으로 설정하는 방법을 사용했다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
// .allowedOrigins("*")
.allowedOriginPatterns("*")
.allowedMethods("GET", "POST", "PATCH", "DELETE")
.allowedHeaders("*")
.allowCredentials(true);
}
}
사용 방법:
WebMvcConfigurer
을 구현하는 클래스 정의@Configuration
아노테이션을 사용하여, 설정 빈 객체로 설정addCorsMappings()
메소드를 오버라이딩 하여 구현addMapping()
: CORS를 허용할 경로 설정,**
같은 와일드 카드 사용 가능allowedOrigins()
: CORS를 허용할 도메인 주소들 설정, 마찬가지로 와일드카드 사용 가능- 이때
*
와 같은 와일드 카드를 사용한 상태에서allowCredentials
를true
로 설정하면 에러 발생- 이런 경우에는
allowedOriginsPatterns()
를 대신 사용 가능
- 이런 경우에는
- 이때
allowedMethosd()
: 요청받을 수 있는 메소드 설정allwedHeaders()
: 요청에 포함 가능한 헤더 설정allowCredentials()
: 응답에 헤더, 쿠키 등과 같은 값을 포함할 수 있는지 설정- 기본값은
false
- 기본값은
'Back End > Spring && Spring Boot' 카테고리의 다른 글
[EC2, Spring boot] 스프링 부트 배포시, 우분투 환경에서 이미지 경로 인식 못하는 문제 (0) | 2024.08.15 |
---|---|
[Spring boot] @Scheduled 스케줄러를 사용해서 Refresh 토큰 관리하기 (0) | 2024.08.10 |
[Spring boot / JWT] Spring security를 사용해서 Refresh Token 구현하기 (0) | 2024.07.13 |
[Spring Security / JWT] 스프링 부트에서 JWT 구현하기 with Spring Security (0) | 2024.07.10 |
[Spring Security] UsernamePasswordAuthenticationFilter 내부 동작 파해치기 (0) | 2024.07.05 |