CORS : 동일 출처 정책
: 브라우저가 중간에서 두 애플리케이션 사이에서 데이터를 공유할 수 있는지 판단해서 공유할 수 있다면 응답하고 아니라면 응답을 제한하는 것
따라서 출처를 비교하는 로직은 브라우저에 구현된 스펙을 기준으로 판단한다
클라이언트 요청 헤더 (A), 서버 응답 헤더(B) 를 비교하여 최종 응답을 결정
- 비교방법 : URL의 구성요소중 Protocol, Host, Port 세가지의 동일 여부에 따라서 동일출 처 인지를 브라우저가 판단한다
1. simple Request
2. Prefilght Request
CORS API
- CORS의 예비 사전 요청의 메소드는 OPTIONS이기 때문에 스프링시큐리티가 먼저 처리되면 사용자 인증이 되지 않은것으로 판단하여 거부할 수 있다.
따라서 CORS가 먼저 처리되도록 하기 위해서 CorsFilter를 사용한다
- CORS는 스프링시큐리티에서만 사용되는것이 아니다. SpringMVC에서도 사용되나 이는 스프링 시큐리티 다음 단계로 스프링시큐리티단에서 차단될 수 있기에 CorsFilter를 통해 스프링시큐리티와 통합하여 사용한다