在 Spring Boot 3 中的 Swagger 3.0 中配置 Jwt 令牌

问题描述 投票:0回答:2

我正在使用 Spring Boot v3.0.2 应用程序作为我的后端,并且我正在尝试将 Swagger v3.0 与我的应用程序集成以用于 api 文档目的。我已成功使用我的应用程序配置了 swaggerUI,并且还能够从 swagger UI 调用 api(不需要 JWT/Bearer 令牌),但无法调用 api(需要 JWT/Bearer 令牌)。仅供您参考,我能够在从邮递员传递不记名令牌的同时成功调用 api。

我在互联网上看到了一些示例,其中显示了一个“授权”按钮,用于在 SwaggerUI 中的所有 api 顶部设置 Bearer 令牌。但所有这些示例都使用 Swagger2.0 或更低版本。

授权按钮视觉示例

我曾尝试在整个互联网上搜索如何从 Swagger UI 3.0 传递 Jwt 令牌,但找不到。

如果有人向我提供一些关于如何配置 api 以在 Spring Boot 3 中接受 JWT 令牌以及如何在 Swagger3.0 中获得“授权”按钮的想法或文档,将会很有帮助

spring-boot swagger swagger-ui openapi
2个回答
3
投票

swagger 页面中的授权按钮只会使用您提供的凭据将授权标头附加到请求中,您可以通过在 OpenApi 配置类中添加以下注释来启用它:

@SecurityScheme(
    name = "Bearer Authentication",
    type = SecuritySchemeType.HTTP,
    bearerFormat = "JWT",
    scheme = "bearer"
)

然后您可以通过添加

将其应用到方法/控制器
@SecurityRequirement(name="Bearer Authentication")

至于为 API 实现 JWT 令牌身份验证,网上有很多指南。


0
投票

在你的 swagger 配置中使用它

@SecurityScheme(
name = "Bearer Authentication",
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
scheme = "bearer"

并在您的所有控制器类上使用它

@SecurityRequirement(name="Bearer Authentication")

并确保@SecurityRequirement和@SecurityScheme注释的“承载身份验证”名称相同

© www.soinside.com 2019 - 2024. All rights reserved.