Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swagger-ui에서의 CORS 에러 해결 #506

Merged
merged 1 commit into from
Aug 29, 2024
Merged

Conversation

pricelees
Copy link
Contributor

@pricelees pricelees commented Aug 26, 2024

PR의 목적이 무엇인가요?

Swagger-UI에서 발생하는 CORS 에러를 해결합니다.

이슈 ID는 무엇인가요?

설명

  • application.yml에 proxy header를 사용하는 설정 정보 추가

질문 혹은 공유 사항 (Optional)

원인

  1. 현재 springboot 서버는 Nginx를 통해 포워딩 되고 있습니다.(리버스 프록시)

  2. 프록시 서버에서 백엔드 서버로 클라이언트 요청을 전달할 때는 헤더에 클라이언트의 요청 프로토콜을 담아 전달합니다.(X-Forwarded-Proto 헤더, 요청이 https이면 https가 담김)

  • 이건 nginx 내부에서 설정할 수 있고, 물론 안 보낼수도 있음.
  1. swagger-ui는 HttpServletRequest로부터 이 프로토콜을 읽어 server를 지정하는데, X-Forwarded-Proto 헤더가 표준 헤더가 아니다보니 이 값을 처리를 못 하고 �http로 값을 지정하고 있었습니다.
스크린샷 2024-08-27 오전 12 32 11
  1. 그래서 swagger-ui를 보면 위 사진처럼 서버가 http://mouda.site 로 지정되는데 이 경로에 대해서는 CORS 설정이 되어있지 않기에 발생하는 오류로 확인됩니다.

해결 방안

CorsConfig에 http://mouda.site 를 추가하거나, SwaggerConfig에서 server를 지정해 줘도 해결되는 문제이나, 추후에 클라이언트 요청 정보를 확인할 경우도 있다고 판단되어 프록시 서버에서 전달하는 헤더들을 처리하는 설정 정보를 추가하였습니다.

간단하게 풀어쓰기 어려운 주제네요.. Nginx를 공부하는 과정에서 알게 된건데 기회가 되면 자세히 설명할 시간을 가져볼게요! 자세한 내용은 Spring 공식 문서 를 참고해주세요. 😄

@pricelees pricelees added BE 백엔드 관련 이슈입니다. 🚑 버그 fix (develop에서 파생된 문제) labels Aug 26, 2024
@pricelees pricelees self-assigned this Aug 26, 2024
Copy link
Contributor

@Mingyum-Kim Mingyum-Kim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

오 해결 방법 파악하는 데 시간 좀 걸렸을 것 같은데 ..
수고하셨습니다 😀

Copy link
Contributor

@ay-eonii ay-eonii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

우왕,,,

@pricelees pricelees merged commit cab81af into develop-backend Aug 29, 2024
1 check passed
@ay-eonii ay-eonii deleted the fix/#505 branch September 13, 2024 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BE 백엔드 관련 이슈입니다. 🚑 버그 fix (develop에서 파생된 문제)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants