Как настроить токен jwt в заголовке swagger с помощью весенней загрузки - PullRequest
0 голосов
/ 31 марта 2020

Я настроил swagger в приложении весенней загрузки, но я не знаю, как аутентифицировать токен авторизации jwt, версия swagger 2.4.0

@Bean
public Docket newsApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any())
            .build()
            .securitySchemes(Lists.newArrayList(apiKey()))
            .securityContexts(Lists.newArrayList(securityContext()));

}

@Bean
SecurityContext securityContext() {
    return SecurityContext.builder()
            .securityReferences(defaultAuth())
            .forPaths(PathSelectors.any())
            .build();
}

List<SecurityReference> defaultAuth() {
    AuthorizationScope authorizationScope
            = new AuthorizationScope("global", "accessEverything");
    AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
    authorizationScopes[0] = authorizationScope;
    return Lists.newArrayList(
            new SecurityReference("JWT", authorizationScopes));
}

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

1 Ответ

0 голосов
/ 16 апреля 2020

Я боролся с этой проблемой сегодня и обнаружил, что на самом деле нет способа сделать это пока .

Ваш код уже достаточно хорош для этой задачи, есть только один ничего не хватает: когда вы добавляете токен в пользовательском интерфейсе, вам также необходимо добавить «Носитель» перед токеном.

  1. Нажмите, чтобы добавить свою авторизацию: click to authorize
  2. Добавьте «Носитель» + ваш токен: token with bearer

Я также пытался добавить «Носитель» в ApiKey, но он также не работает (потому что он генерирует двойное ":".

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...