요청 로그와 응답 로그를 수정해서 요청하는 api 를 볼 수 있도록 수정했더니 아래와 같이, 끔찍한 에러로그가 발견되었다.
이게 응답 api를 인터셉터해서 로그 출력을해서 이런건지 아니면 원래 계속 error 응답을 보냈던건지 알수 없지만
swagger 에서 어떤 요청을 하고 그에 대한 에러 페이지를 걔속 보여주는 현상이 발견되었다.
📌 문제상황
HTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" "-"
220.76.132.249 - - [13/Oct/2022:13:55:27 +0900] "도메인.com/" "GET /null/swagger-resources/configuration/security HTTP/1.1" 401 201 "http://도메인/swagger-ui.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" "-"
220.76.132.249 - - [13/Oct/2022:13:55:27 +0900] "도메인.com" "GET /null/swagger-resources HTTP/1.1" 401 178 "http://도메인/swagger-ui.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" "-"
220.76.132.249 - - [13/Oct/2022:13:55:27 +0900] 도메인.com" "GET /null/swagger-resources/configuration/ui HTTP/1.1" 401 195 "http://도메인/swagger-ui.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36" "-"
📌 문제 해결 방법
https://github.com/springfox/springfox/issues/2907 여기 다양한 의견들이 있었고
pathMapping으로 swagger 루트 경로 지정해서 해결하였다
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.//생략
.build()
.pathMapping("/")
//생략
}
📌 아! 그리고 루트 경로를 지정해주어도 에러가 난다면
이전 배포 버전의 swagger 페이지가 열려있는지 확인하자!!
계속에러가 나서, 다른분의 피시를 확인하였더니 이전 버전의 스웨거 페이지가 켜져있었고, 다시 새로고침하니 더이상 에러가 발생하지 않았다..!!
*참고