티스토리 뷰

1. build.gradle 추가

implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '3.0.0'

2. SwaggerConfig

@Configuration
@RequiredArgsConstructor
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
                .securityContexts(Arrays.asList(securityContext()))
                .securitySchemes(Arrays.asList(apiKey()))
                .select()
                .apis(RequestHandlerSelectors.basePackage("[패키지 경로]"))
                .paths(PathSelectors.any())
                .build()
                ;
    }

    private SecurityContext securityContext() {
        return SecurityContext.builder()
            .securityReferences(defaultAuth())
            .build();
    }

    private List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
    }

    private ApiKey apiKey() {
        return new ApiKey("Authorization", "Authorization", "header");
    }
}

이렇게 설정을 하면 아래와 같이 Authorize 버튼이 생긴다.

저 버튼을 누르면 

이런 창이 뜬다

여기서 중요한 점은 value에 Bearer + Access Token 값을 넣어줘야 한다는 것이다! (Bearer뒤에 띄어쓰기 조심 ^^!;;)