티스토리 뷰

JWT인증을 사용하는 경우 Swagger에서 테스트 하는 방법에 관한 포스트 입니다.

 

사족으로 제목에서 JWT에 Token이 포함 되어 있는데 JWT Token하면 토큰 토큰이 되는 것은 알고 있습니다만 JWT만 쓰면 좀 허전해서 자꾸 붙이게 되네요.

 

 

Swagger를 처음 세팅하면 아래 화면 오른쪽에 Authorize 버튼이 보이지 않습니다.

Authorize버튼을 누르면 아래와 같은 form이 나옵니다.

Token앞에 Bearer 를 넣고 그 뒤에 jwt를 붙여넣기 한 후 사용합니다.

 

 

버튼 나오게 하는 방법

아래와 같이 SwaggerConfig에 세팅 하시면 위 Authorize버튼이 보입니다.

@Configuration
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.OAS_30)
                .securityContexts(Arrays.asList(securityContext()))
                .securitySchemes(Arrays.asList(apiKey()))
                .select()
                .apis(RequestHandlerSelectors.any())
                .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");
    }
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함