토이 프로젝트 중 swagger에 access token와 refresh token을 담을 일이 생겼는데,
springfox가 아니라 springdoc을 사용하려고 보니 생각보다 헷갈렸다.
springdoc-openapi-1.6.4 사용
OpenAPI를 설정해준다.
@Bean
public OpenAPI openAPI() {
(info 설정 생략)
String key = "Access Token (Bearer)";
String refreshKey = "Refresh Token";
SecurityRequirement securityRequirement = new SecurityRequirement()
.addList(key)
.addList(refreshKey);
SecurityScheme accessTokenSecurityScheme = new SecurityScheme()
.type(SecurityScheme.Type.HTTP)
.scheme(AuthorizationType.BEARER.getCode())
.bearerFormat("JWT")
.in(SecurityScheme.In.HEADER)
.name(HttpHeaders.AUTHORIZATION);
SecurityScheme refreshTokenSecurityScheme = new SecurityScheme()
.type(SecurityScheme.Type.APIKEY)
.in(SecurityScheme.In.HEADER)
.name(AuthorizationType.REFRESH_TOKEN.getCode());
Components components = new Components()
.addSecuritySchemes(key, accessTokenSecurityScheme)
.addSecuritySchemes(refreshKey, refreshTokenSecurityScheme);
return new OpenAPI()
.info(info)
.addSecurityItem(securityRequirement)
.components(components);
}
위와 같이 설정하면,
이렇게 설정되는 것을 볼 수 있다.
실제로 값을 담아주고도 있다.