https://thiswooin.tistory.com/57
예전에 CORS를 마주한 적이 있었다.
당시, 숱하게 많은 대응책을 구글에서 접했는데 모두 통하지 않았다.
이유는 두가지이다.
- 스프링 시큐리티 환경인지 아닌지
- 필터를 추가를 시켜야 하는지.
정말 긴 시간 나를 괴롭힌 CORS를 서버측에서 허용해주는 방법을 정리해본다.
1. CorsFilter 생성
위와 같이 혹은 비슷한 방법으로 특정 조건에 대한 접근을 허용하는 식으로 CORS가 나지 않을 수 있게 한다.
하지만 위처럼 비슷한 필터를 만드는 건 숱하게 많이 봐왔다.
모든 걸 거의 다 따라해봤음에도 되지않았고, 이 때문에 엄청 헤맸는데
결과적으로 가장 중요한 것을 안 했었다.
2. 필터 등록
생각해보면 당연하다.
기본적으로 Spring Security와 Spring Boot에서 다양한 filter를 거친 후에 Dispatcher Servlet 까지 가는 건데
그 이전에 CORS를 허용해야하는 것이다.
열심히 통과규칙을 만들어 놓고 적용이 안 된 셈
기존에 인증 인가 필터를 만들어둔 걸 필터를 추가해준 것처럼 corsFilter도 추가해준 모습이다.
해당 필터는 따로 순서를 지정하진 않았지만 우선 동작은 하는 것으로 보인다.
더 공부해야 할 것
Spring Boot, Secutiry 동작방식
아무래도 필터 동작처럼 Spring이 편하게 세팅해주는 곳들이 많다.
이렇다보니 믿고 맡겼던 곳이 다시 말하자면 잘 모르는 부분들이다.
당장에는 동작에 문제가 없을 지라도 최적화나 응용 커스텀을 위해서는 언젠가는 꼭 배워둬야 겠다.
'TIL : Today I learned (or Week)' 카테고리의 다른 글
TIL 230818 : AWS S3 (Simple Storage Service) 2 - multipart, requestDto와 첨부파일 동시에 받기 (0) | 2023.08.24 |
---|---|
TIL 230817 : AWS S3 (Simple Storage Service) 1 - 세팅, 객체업로드 (0) | 2023.08.22 |
WIL 230813 : 리액트를 접하다. (0) | 2023.08.17 |
TIL 230809 : 개인점검 (0) | 2023.08.10 |
TIL 230808 : 코드 디테일 조금씩 살려보기 (Transactional, NoArgsConstructor(AccessLevel = PROTECTED)) (0) | 2023.08.08 |