[Spring] 프론트의 cors 문제가 왜 발생했을까

layl__a·2022년 9월 15일
0

Spring Boot

목록 보기
6/17

프로젝트를 진행하던 중 프론트에서 다음과 같은 cors 에러가 난다고 요청이 왔다.

"Access to XMLHttpRequest at 'http://testsite:8080/login' from origin 'http://testsite:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource."

처음에는 Security corsConfigurationSource() 의 addAllowedOrigin 의 코드 문제인 줄 알았다.

configuration.addAllowedOrigin("http://testsite:8080/**");

이렇게 하면 swagger와 서버에서 둘 다 사용할 수 없기 때문에

configuration.addAllowedOrigin("*");

이렇게 바꾸고 배포를 하였다. 나는 Swagger에서 잘 나오면 서버에서도 잘 나오는 줄로만 알았다...

그런데 여전히 Swagger에서만 잘 나오고, 서버에서는 cors에러가 난다는 얘기를 들었다...

결론은,

스프링부트 2.4.0부터는 allowCredentials(true)를 사용하면 allowedOrigins에 특수 값인 "" 추가할 수 없다고 한다.
대신 AllowedOriginPattern를 "
" 로 사용해야 한다.

생각보다 간단한 문제였지만 나에게는 공부를 더 깊게 해야한다는 생각을 하게 해주었다.

0개의 댓글