본문 바로가기
TIL : Today I learned (or Week)

TIL 230816 : Cors 필터 적용하기 (Spring Security 환경)

by 우인입니다 2023. 8. 21.

https://thiswooin.tistory.com/57

 

TIL 230719 : CORS 첫 대면

https://thiswooin.tistory.com/56 TIL 230718 : 카카오로 로그인하기 기능 (OAuth) https://developers.kakao.com/docs/latest/ko/kakaologin/common#intro-kakaologin Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발

thiswooin.tistory.com

 

예전에 CORS를 마주한 적이 있었다.

 

당시, 숱하게 많은 대응책을 구글에서 접했는데 모두 통하지 않았다.

이유는 두가지이다.

 

  1. 스프링 시큐리티 환경인지 아닌지
  2. 필터를 추가를 시켜야 하는지.

 

정말 긴 시간 나를 괴롭힌 CORS를 서버측에서 허용해주는 방법을 정리해본다.

 


1. CorsFilter 생성

 

위와 같이 혹은 비슷한 방법으로 특정 조건에 대한 접근을 허용하는 식으로 CORS가 나지 않을 수 있게 한다.

하지만 위처럼 비슷한 필터를 만드는 건 숱하게 많이 봐왔다.

 

모든 걸 거의 다 따라해봤음에도 되지않았고, 이 때문에 엄청 헤맸는데

결과적으로 가장 중요한 것을 안 했었다.

 

2. 필터 등록

 

생각해보면 당연하다.

기본적으로 Spring Security와 Spring Boot에서 다양한 filter를 거친 후에 Dispatcher Servlet 까지 가는 건데

그 이전에 CORS를 허용해야하는 것이다.

열심히 통과규칙을 만들어 놓고 적용이 안 된 셈

 

기존에 인증 인가 필터를 만들어둔 걸 필터를 추가해준 것처럼 corsFilter도 추가해준 모습이다.

해당 필터는 따로 순서를 지정하진 않았지만 우선 동작은 하는 것으로 보인다.

 


더 공부해야 할 것

 

Spring Boot, Secutiry 동작방식

아무래도 필터 동작처럼 Spring이 편하게 세팅해주는 곳들이 많다.

이렇다보니 믿고 맡겼던 곳이 다시 말하자면 잘 모르는 부분들이다.

 

당장에는 동작에 문제가 없을 지라도 최적화나 응용 커스텀을 위해서는 언젠가는 꼭 배워둬야 겠다.