如何在 Spring 启动应用程序中定义 Swagger SecurityScheme

How to define Swagger SecurityScheme in a Spring Boot Application

我正在尝试将 http 基本身份验证要求定义为我的应用程序的默认要求:

components:
 securitySchemes:
   BasicAuth:
    type: http
    scheme: basic

但是我的 BasicAuth 安全 class 没有在 swagger.json 文件中生成。

我已经用 io.swagger.v3.oas.annotations.security.

的 @SecurityScheme 注释定义了一个 class
@SecurityScheme(type = SecuritySchemeType.HTTP, name = "basic")
public class BasicAuth {
}

在我的 OpenApi 定义中,我添加了 SecuirtyRequriment:

SecurityRequirement requirement = new SecurityRequirement();
requirement.addList("BasicAuth");

所以我发现我做错了什么,我不得不用基本的安全方案注释至少一个资源。之后它出现在 Swagger.json 文件

感谢您的 post。我没有意识到您必须通过单独的 class 添加 @SecurityScheme。这对我有用(使用 RESTeasy):

@SecurityScheme(type = SecuritySchemeType.HTTP, name = "BasicAuth", scheme = "basic")
public class BasicAuth {
}

在 javax.ws.rs.core.Application.getSingletons() 的实现中添加此 class 的一个实例。

将此注释添加到 REST 方法或 class 实现需要基本身份验证的 REST 方法:

@SecurityRequirement(name = "BasicAuth")