在 springdoc-openapi-ui 中为承载令牌身份验证(JWT)启用授权按钮

2022-01-10 00:00:00 jwt spring java openapi springdoc

如何在

解决方案

使用注解 @io.swagger.v3.oas.annotations.security.SecurityScheme 为 OpenAPI 3.0 定义全局安全方案@Configuration 豆:

@Configuration@OpenAPIDefinition(info = @Info(title = "我的 API", version = "v1"))@安全方案(name = "bearerAuth",类型 = SecuritySchemeType.HTTP,BearerFormat = "JWT",方案=承载者")公共类 OpenApi30Config {}

使用引用定义的安全方案的 @io.swagger.v3.oas.annotations.Operation 注释每个需要承载令牌身份验证 (JWT) 的 @RestController 方法:p>

@Operation(summary = "我的端点", security = @SecurityRequirement(name = "bearerAuth"))

How to enable "Authorize" button in springdoc-openapi-ui (OpenAPI 3.0 /swagger-ui.html) for Bearer Token Authentication, for example JWT.

What annotations have to be added to Spring @Controller and @Configuration classes?

解决方案

Define a global security scheme for OpenAPI 3.0 using annotation @io.swagger.v3.oas.annotations.security.SecurityScheme in a @Configuration bean:

@Configuration
@OpenAPIDefinition(info = @Info(title = "My API", version = "v1"))
@SecurityScheme(
    name = "bearerAuth",
    type = SecuritySchemeType.HTTP,
    bearerFormat = "JWT",
    scheme = "bearer"
)
public class OpenApi30Config {

}

Annotate each @RestController method requiring Bearer Token Authentication (JWT) with @io.swagger.v3.oas.annotations.Operation referencing the defined security scheme:

@Operation(summary = "My endpoint", security = @SecurityRequirement(name = "bearerAuth"))

相关文章