티스토리 뷰
[SpringBoot] Security 적용시 swagger 샘플페이지로 나오는 현상 (petstore.swagger.io/v2/swagger.json)
종벌🍀 2023. 1. 18. 11:31
Spring Security 적용 시 설정한 api-docs URL 기본으로 안나오는 현상 해결
어제 springdoc 으로 swagger 간단하게 만들어 테스트해봤고
프로젝트 중인 패키지에도 적용을 해봤는데
테스트 했던 것과는 다르게 springdoc.api-docs.path (springdoc.swagger-ui.url) 대로 동작하지 않았다.
자꾸 swagger 디폴트 페이지가 먼저 뜸 ( https://petstore.swagger.io/v2/swagger.json )
내가 설정한 /api-docs 라는 url 로 검색해야 나오는 상황...
그래서 디폴트 페이지를 아예 안나오게 옵션을 추가해봤더니
springdoc:
swagger-ui:
disable-swagger-default-url: true #디폴트 페이지 안나오게
path: /api-ui.html
api-docs:
path: /api-docs
show-actuator: true
default-produces-media-type: application/json
그냥 디폴트 페이지만 안나올 뿐 내가 설정한 api-docs 는 나오지 않음.
프로젝트 설정차이를 비교해 본 결과,
Spring security 를 설정하고 안하고 차이가 있어 swagger 내부 호출이 securityfilter에 걸리는게 있겠구나를 깨달음.
역시나...
localhost:port/{springdoc.api-docs.path}/swagger-config
swagger 내부에서 swagger-config 호출하는데 security에 걸려서 내가 설정한 url 정보를 받지 못한 상황이었다.
그래서 security에 내가 설정한 api-docs path 로 추가로 넣어줬다.
.antMatchers("/", "/api*", "/api-docs/**", "/swagger-ui/**").permitAll()
내가 application.yml 에 설정한 springdoc.api-docs.path 하위도 추가 허용해주었다.
내부적으로 url 호출이 저렇게 변형되어 할 것이라 생각을 못했다.
/swagger-ui/** 하위로 호출 할줄 알았는데...
'Java > SpringBoot&Spring' 카테고리의 다른 글
[SpringBoot] Security Login 적용하기. (0) | 2023.05.03 |
---|---|
[Spring] 세션(Session) Redis에 저장하기 (feat.docker Redis) (0) | 2023.04.03 |
[SpringBoot] P6Spy query logging 사용하기 (0) | 2023.02.14 |
[SpringBoot] Springdoc을 이용한 swagger, API DOCS (0) | 2023.01.17 |
[SpringBoot] Security 로그인 시 status 999 해결 (0) | 2023.01.13 |