如何为安全 API 添加大摇大摆的开放 api 3.0 配置



我已经启用了Swagger open API 3.0,如下所示:

添加了以下依赖项

<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.2</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.2</version>
</dependency>

之后添加下面的bean进行自定义。

@Bean
public OpenAPI customOpenAPI(@Value("${application-description}") String appDesciption,
@Value("${application-version}") String appVersion) {
return new OpenAPI().info(new Info().title("One Money Backend API").version(appVersion)
.description(appDesciption).termsOfService("http://swagger.io/terms/")
.license(new License().name("Apache 2.0").url("http://springdoc.org")));
}

一切都很好。我能够访问swagger-uiapi文档

但我有几个api是用keycaploOAuth2.0保护的。当我试图访问那些安全的api时,我会收到未经授权的错误(这是意料之中的(。我想从swaggeropenapi3.0测试安全的api。

有人能帮助我在swagger开放api 3.0中启用授权,以测试我从swagger获得的安全api吗。

您需要添加SecuritySchemebean,如下所示。根据您的身份验证类型,您可以更改scheme

对于基本

@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().components(new Components()
.addSecuritySchemes("basicScheme", new SecurityScheme()
.type(SecurityScheme.Type.HTTP).scheme("basic")));
}

JWT

@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().components(new Components()
.addSecuritySchemes("bearer-key", new SecurityScheme()
.type(SecurityScheme.Type.HTTP).scheme("bearer").bearerFormat("JWT")));
}

更多详细信息可以在这里找到

最新更新