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 구현하기 (2) | 2024.07.13 |
| [Spring Security / JWT] 스프링 부트에서 JWT 구현하기 with Spring Security (0) | 2024.07.10 |
| [Spring Security] UsernamePasswordAuthenticationFilter 내부 동작 파해치기 (0) | 2024.07.05 |