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



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

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

但是我的 BasicAuth 安全类不是在 swagger.json 文件中生成的。

我已经用io.swagger.v3.oas.annotations.security定义了一个名为@SecurityScheme注释的类。

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

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

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

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

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

在 javax.ws.rs.core.Application.getSingletons(( 的实现中添加此类的实例。

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

@SecurityRequirement(name = "BasicAuth")

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

最新更新