본문 바로가기
TIL(Today I Learned)

Spring 프로젝트에 CORS 적용하기

by kkkdh 2023. 2. 15.
728x90

들어가면서..

이번에 진행하는 프로젝트가 처음으로 프론트 파트와 백엔드 파트를 분리해서 개발하는 방식이고, 저는 이 중 백엔드 파트의 WAS를 spring framework를 이용해 개발하는 파트를 담당하게 되었습니다.

 

 

CORS에 대한 개념 정리

공부하게된 이유... 이번에 프로젝트를 진행하면서, 처음으로 프론트엔드 파트와 백엔드 파트를 나누어 개발을 진행하게 되었는데 배포 방식에 대해 이야기 하던 도중 프론트 서버와 백 서버를

kkkdh.tistory.com

그래서 이번에는 지난 글에서 정리했던 SOP와 CORS에 대한 개념을 바탕으로 클라이언트 측에서 오는 교차 출처 차원 허용에 대한 부분을 처리하게 되었고, 이번 글에서는 이 과정을 간단하게 기록해보려고 합니다!


CORS 허용하는 출처 등록하는 방법

저는 Spring framework를 사용했기 때문에, spring을 기준으로 정리해보려 합니다.

 

우선 SOP나 CORS에서 말하는 origin은 출처를 의미하고, 이 출처는 protocol + domain + port 세 개의 정보를 합친 개념임을 알고 있었습니다.

 

따라서 CORS관련 문제를 해결하는 것은 사실 CORS 자체가 문제인 것이 아니라 SOP라는 기본 정책을 회피하기 위해 CORS를 허용하는 출처를 등록하는 것이 해야할 일입니다. 

 

Spring 에서 CORS 정책을 허용할 출처를 등록하는 방법에는 크게 3가지가 있었는데, 저의 경우에는 WebMvcConfigurer 인터페이스를 상속받아 Configuration을 등록해 설정하는 방식을 선택했습니다.

 

제가 작성한 WebMvcConfigurer를 상속받아 만든 Configuration 구현체 코드는 다음과 같습니다.

@Configuration
public class WebConfiguration implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*");
    }
}

WebMvcConfigurer를 상속받은후, addCorsMappings라는 메서드를 overring 하면 됩니다.

  • addMapping method: CORS 정책을 적용할 URL 패턴을 작성
  • allowedOrigins method: 허용할 출처를 등록

위 두가지의 메서드를 이용해 CORS 정책을 적용할 WAS의 uri를 지정하고, 허용할 출처를 명시할 수 있습니다.

 

이때, 위 코드와 같이 메서드에 인자를 넣는 방식은 모든 자원에 대한 CORS 정책 적용과 모든 출처를 허용함을 의미합니다.

 

뿐만 아니라 allowedMethods method를 활용하면, 허용할 HTTP method까지 제한할 수 있습니다.

 

이상으로 간단하게 CORS 정책을 적용할 자원의 등록과 출처를 허용하는 방법을 정리해 봤습니다.

728x90

댓글