1. 서론
CORS 문제는 Web 관련 개발을 하다 보면 Framework 와 무관하게 한번 쯤 맞이 할만한 문제이다. 본 글에서는 GLOBAL 하게 CORS 설정을 하는 법에 대해 공유하고자 한다.
2. 본론
2-(1) WebMvcConfigurer 구현
- 설명
SpringBoot 는 SpringMVC 를 비롯해 웹 개발에 필요한 여러 라이브러리들을 개발자에게 제공해주는 일종의 보따리 이다. 때문에, SpringBoot 를 통해 CORS 를 설정하고자 할 때는 Spring MVC 의 CORS 를 설정하는 것처럼 Web MVC 하위에 있는 WebMvcConfigurer 를 implements 후 설정해주면 된다.
- 예시
- 참고
Spring Docs 에서는 이 방법을 추천하고 있다.
2-(2) CORS 필터 Bean 등록
- 설명
본 방법은 title 그대로 CORS 필터를 구현 후 Bean 으로 등록하는 것이다. 본 방법의 경우, Spring MVC 가 아닌 Spring Web 에만 의존하고 있거나 security 설정 level 에서 CORS 를 필수적으로 체킹해야 되는 경우 유용하다고 할 수 있겠다.
- 예시
- 참고
본 설정에서 가장 중요한 것은 Component 의 order 순서이다.
3. 결론
본 글에서 Global 하게 CORS 를 설정하는 2가지 방법에 대해 소개했다. 본 방법들이 아닌 XML 을 통해 Global 하게 설정하는 방법도 존재한다. 다만, 실무에서 XML 을 통해 여러 설정들을 하는 것들보다는 Code 레벨에서 관리하는 것이 유지보수 측면에서 편리하다는 것이 필자 개인의 생각이며 성향이다. XML 을 통해 Global 하게 설정하는 방법 혹은 Controller 단에서 CORS 를 제어하는 방법들도 존재하니 이 부분들이 궁금한 독자들은 아래의 참고 링크를 통해 Spring Docs 를 읽어보는 것을 추천한다.
4. 참고
- Spring Docs - CORS 설정 방법 소개
https://spring.io/blog/2015/06/08/cors-support-in-spring-framework
- WebMvcConfigurer
- CorsFilter