프론트엔드와 연결하는 작업을 시작하면서 드디어 만나게 되었다 cors.....
사실 본 프로젝트를 시작하기 전에 기본 기능만 닌자처럼 빠르게 구현해보고 부족한 점을 찾아서 본 프로젝트에서 보완하자는 의미의 '닌자 프로젝트' 를 진행하면서 cors 설정을 해두었기때문에 크게 걱정하지는 않았다
하지만 닌자 프로젝트는 spring security를 사용하지 않았지......
닌자 프로젝트에서 다음과 같이 cors을 적용했다
하지만 spring security는 이와 같이 해서는 안되고 filter에 적용을 시켜야 한다는 것을 모르고 있었다
몰랐기에 이것 저것 정말 많이 시도해보았고 결국은 해냈다
스프링부트 2.4.0부터 AllowCredentials가 true일때는 AllowdOrigin에 *를 추가할 수 없고, 대신 AllowOriginPattern을 사용해야 한다고 한다
AllowCredentials가 true일 시 cors 요청시 쿠키 값을 포함한다고 하는데, false로 설정해주며 해결하였다
해결 과정
1. 기존에 작성되었던 코드(filter에 적용하는 방법)가 내가 작성한게 아니기에 잘 모르고 있었음
2. 닌자 프로젝트에서 했던 방식으로 설정해봄 -> 실패
3. 여러가지 값들을 변경하며 설정해봄 -> 실패
4. filter에 적용시켜야 하는 것을 깨닫고 기존과 같은 방식으로 시도해봄 -> 실패
5. AllowCredentials가 true일때 AllowedOrigin에 *를 추가할 수 없다는 것을 깨달음
6. AllowCredential을 false로 변경 -> 성공
지금은 이렇게 다 허용을 했지만 현업에서는 어떻게 설정했는지 궁금하다
프론트엔드 서버만 허용 가능하게 설정해둘까?
cors도 공부해야겠다.... 공부할게 점점 더 늘어간다
'Project > Snacks' 카테고리의 다른 글
[Snacks 개발 일기] #11 Table doesn't exist 해결하기 (0) | 2023.01.13 |
---|---|
[Snacks 개발 일기] #10 incorrect string value..... 에러 해결하기 (0) | 2023.01.03 |
[Snacks 개발 일기] #8 구글 로그인과 같은 이메일로 자체 로그인할 때 안되는 현상 해결하기 (0) | 2022.12.23 |
[Snacks 개발 일기] #7 자체 로그인과 구글 로그인 충돌 방지 (0) | 2022.12.12 |
[Snacks 개발 일기] #6 구글 로그인정보를 통해 JWT 토큰 발급하기 (0) | 2022.12.12 |