Java swagger аннотации для авторизации - PullRequest
0 голосов
/ 04 сентября 2018

Я использую следующие чванские зависимости для моего остальных API:

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-service-description-swagger</artifactId>
    <version>3.2.6</version>
</dependency>
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>swagger-ui</artifactId>
    <version>3.17.6</version>
</dependency>

Теперь я добавляю безопасность своему проекту. Как я могу реализовать возможность использовать API от чванства?

Я могу установить @HeaderParam(HttpHeaders.AUTHORIZATION) для каждого метода - но я думаю, есть лучший способ сделать это?

1 Ответ

0 голосов
/ 11 сентября 2018

Итак, теперь я хочу поделиться с вами рабочим решением, которое я использовал:

@SwaggerDefinition(securityDefinition = @SecurityDefinition(
    apiKeyAuthDefinitions = {
            @ApiKeyAuthDefinition(
                    key = HttpHeaders.AUTHORIZATION,
                    name = HttpHeaders.AUTHORIZATION,
                    in = ApiKeyAuthDefinition.ApiKeyLocation.HEADER
            )
    }
))

Это создаст кнопку безопасности для вашего интерфейса Swagger для установки заголовка аутентификации. Теперь вам просто нужно аннотировать apis, который вы хотите защитить следующим образом:

@Api(value = "Your value", description = "Your description", authorizations = {
    @Authorization(HttpHeaders.AUTHORIZATION)
})

Конечно, вы можете использовать свой пользовательский заголовок, но для моего решения я использовал HttpHeaders.AUTHORIZATION.

Так что я надеюсь, что это кому-нибудь поможет.

...