728x90
Java 17, Spring Boot 3.0.x 이상은 도대체 무슨 격동이 일어난 것일까..
기존에 사용하던 세팅이 지원이 안 되는 경우가 많다.
Swagger 역시 springfox로 설정하여 접속하게 되면 403 에러가 발생하면서 접속 자체가 막혀버리는 현상이 일어났다.
스택오버플로우를 찾아보니 springfox-boot-start 3.0.0
, springdoc-openapi-ui 1.6.13
등이 아직 spring boot 3.0을 지원하지 않고 있는 것 같다.
우리가 사용할 수 있는 방법은 springdoc-openapi-starter-webmvc-ui
사용하는 방법이었다
의존성 추가
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
다음 의존성을 gradle에 추가하였다.
SwaggerConfig
@OpenAPIDefinition(
info = @Info(
title = "Content I Like API Docs",
description = "API 명세서",
version = "v1"
)
)
@Configuration
public class SwaggerConfig {
}
application.yml 설정
springdoc:
default-consumes-media-type: application/json
default-produces-media-type: application/json
api-docs:
groups:
enabled: true
swagger-ui:
path: /swagger-ui # 접속 path 설정
disable-swagger-default-url: true
doc-expansion: none # tag, operation 펼치는 방식
paths-to-match:
- /**
접속
저는 로컬 환경에서 확인 할 예정이므로http://localhost:8088/swagger-ui/index.html
다음 url을 통하여 swagger에 접속했는데
다음과 같이 403 에러가 발생하면서, 접속이 되지 않았다.
해당 문제는 Spring Security에서 경로를 열어주면 된다.
Spring Security 설정
@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {
...
private final String[] SWAGGER = {"/v3/api-docs/**", "/swagger-ui/**"};
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeHttpRequests()
...
.requestMatchers(SWAGGER)
.permitAll()
...
return http.build();
}
}
결과
swagger의 화면이 로드되지 않는 에러 발생시 참고
참조
반응형
'Server > Spring&Spring Boot' 카테고리의 다른 글
[Spring Boot] AWS S3에 파일 업로드 (0) | 2023.01.26 |
---|---|
[Spring] test code에 대한 회고 (0) | 2023.01.24 |
[Spring Boot] Spring Security 6.0 Configuration. (0) | 2023.01.17 |
[JPA] Update 후 해당 객체를 Return했을 때 @CreatedDate가 null 이 반환되는 상태에 대한 회고 (0) | 2023.01.06 |
[Spring] 전역 예외, Global Exception 생성 (0) | 2022.12.21 |