我正在使用 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 中获得“授权”按钮的想法或文档,将会很有帮助
swagger 页面中的授权按钮只会使用您提供的凭据将授权标头附加到请求中,您可以通过在 OpenApi 配置类中添加以下注释来启用它:
@SecurityScheme(
name = "Bearer Authentication",
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
scheme = "bearer"
)
然后您可以通过添加
将其应用到方法/控制器@SecurityRequirement(name="Bearer Authentication")
至于为 API 实现 JWT 令牌身份验证,网上有很多指南。
在你的 swagger 配置中使用它
@SecurityScheme(
name = "Bearer Authentication",
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
scheme = "bearer"
)
并在您的所有控制器类上使用它
@SecurityRequirement(name="Bearer Authentication")
并确保@SecurityRequirement和@SecurityScheme注释的“承载身份验证”名称相同