Java swagger注解进行授权

标签 java authorization swagger

我正在为我的其余 api 使用以下 swagger 依赖项:

<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>

现在我正在为我的项目添加安全性。如何实现使用 swagger 的 api 的可能性?

我可以为每个方法设置@HeaderParam(HttpHeaders.AUTHORIZATION) - 但我想有更好的方法来做到这一点?

最佳答案

现在我想与您分享我使用的工作解决方案:

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

它将为您的 Swagger UI 创建安全按钮来设置身份验证 header 。现在您只需要像这样注释您想要保护的 api:

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

当然,您可以使用自定义 header ,但对于我的解决方案,我使用了 HttpHeaders.AUTHORIZATION

所以我希望它能对某人有所帮助。

关于Java swagger注解进行授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52168580/

相关文章:

java - 使用synchronized时寄存器刷新如何工作?

java - 如何为 Eclipse 上的 JUnit 测试增加 VM 内存大小?

android - Google Maps Android v2 授权失败

authentication - 如何跨多个微服务提供用户身份?

php - 60 天后延长 Facebook 访问 token

java函数匹配规则不同于C++

java - 带有处理功能的 Skype API 或 Arduino

swagger - 如何在 OpenAPI 中定义全局参数?

java - 从 Java 自动生成 Swagger 文档

express - 像 swagger/swashbuckle 但对于 node.js?