Spring security + Swagger API :: Swagger Petstore, 'No API definition provided.'

박보서·2024년 9월 20일
0

git clone 으로 프로젝트 소스코드를 내려 받고 swagger 문서를 켜려고 했더니 웬 pet store화면이 나옴. ;;

뭐죠 내 플젝 API 는 이렇게 안 생겼다고요
이런 귀여운 API 가 아니라고요

그래서 모지 싶어서

  • application.properties
springdoc.swagger-ui.disable-swagger-default-url=true

파일에 해당 코드를 넣어 기본 url 안 가져오게끔 했더니!

텅텅 빈 화면이 나오드라...

알고보니 Swagger UI가 API 정의를 가져오기 위해 /v3/api-docs 경로에 접근하려고 하는데,
이 경로가 Spring Security에 의해 차단되어 No API definition provided 에러가 발생한 거고,
이 때 Swagger 자체적으로 default url 이 있어서 pet store 같은 깜찍한 API 명세서가 나왔던 것.

  • SecurityConfig.java
.requestMatchers("/v3/api-docs/**", "/swagger-ui/**").permitAll()

시큐리티 설정 파일의 permitAll 에 Swagger가 API 정의를 가져오기 위한 경로도 추가해줌.
정확히 말하자면 '/v3/api-docs/**" 가 되시겠다. 끝 !

profile
? -> ! 보서의 지식 채굴 여정기

0개의 댓글