Аннотации Java Swagger для авторизации

Я использую следующие зависимости swagger для моего rest 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 из swagger?

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
964
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

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

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

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

Другие вопросы по теме