Spring CORS 처리

less than 1 minute read

Cross Origin Resource Sharing

Issue

  • 서로 다른 도메인에 대해서 Http요청을 할 때, CORS 정책 발생
  • preflight 요청에선 cookies, credentials를 포함하지 않는다.
  • ajax요청 후, cookie가 셋팅되지 않는 이슈 발생

Solution

Back-end

  • @CrossOrigin Annotation 사용
  • Spring security 사용 중이면 각각의 Url Path에 대한 Role(권한) 확인 필요.
    • CrossOrigin 셋팅해도 preflight request가 안된다면 security에서 접근을 막은 것일 수 있다.

Front-end

  • credentials 셋팅
    • ajax요청 시, xhr.withCredentials = true; 셋팅
    • API서버에서도 Access-Control-Allow-Crendentials = true 셋팅되어야 함

참고

  • custom header를 사용하여 http요청 시, preflight request 방식으로 요청한다.
  • CORS request는 기본적으로 Non-Credential이다.

Categories:

Updated:

Leave a comment