Swagger 연동해보기

이름이름·2023년 2월 24일
1

Spring

목록 보기
19/20

상황

일단 현재 스프링부트 버전은 3.0.2이다.
Swagger랑 연동시키려면 (연동이라는 표현이 맞는지는 모르겠는데) springfox vs springdoc 둘 중 하나를 쓴다고 하는데 스프링부트 버전이 올라오면서 springfox는 그에 맞춰 업데이트가 잘 안되고 springdoc이 업데이트가 잘 돼서 springdoc을 쓴다고 한다.

아무튼 구글링을 해도 스프링부트버전이 2.x 인 것들만 많이 나와서 정보가 많이 없어서 SwaggerConfig파일도 추가하고 이런저런 의존성들도 추가했었는데 결국 답은 하나였다

방법 : 의존성 추가 (단 한 줄)

implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

build.gradle 의존성 부분에 요거 하나 추가해주면 다른 설정없이 http://localhost:8080/swagger-ui/index.html 여기로 들어갈 수 있다!

문제점

현재 JWT를 사용중이라 발급받은 토큰 없이는 localhost:8080 이나 localhost:8080/swagger-ui 등 여타 다른 url들에 접근이 불가능 한 상태이다
이전에 추가해 뒀던 SecureConfig 파일 중 일부분이 아래에 있다


이 부분은 이제 "/auth~ 라는 url에 접근할 때 permiAll() 즉, 접근을 허용한다는 말이다. 토큰이 없이도 말이다.
당연히 그래야 회원가입이나 로그인 요청을 할 수 있음


이를 응용해 "/swagger-ui~" 이하의 url이 오면 토큰없이도 접근이 가능하도록 requestMatcher에 추가해주었다
추가로 뒤에 "/V3/api-docs/**" 도 추가해줘야 제대로 나오더라

다른 블로그들 보면 antmatcher() 라는 부분 안에 저렇게 추가해주던데 내 SecureConfig 파일에서는 antmathcer가 없어서 그냥 저기 requestMathcers() 안에 추가해줬다

결과


잘 된다!

profile
공부 정리

0개의 댓글