我已经启用了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-ui和api文档。
但我有几个api是用keycaploOAuth2.0保护的。当我试图访问那些安全的api时,我会收到未经授权的错误(这是意料之中的(。我想从swaggeropenapi3.0测试安全的api。
有人能帮助我在swagger开放api 3.0中启用授权,以测试我从swagger获得的安全api吗。
您需要添加SecurityScheme
bean,如下所示。根据您的身份验证类型,您可以更改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")));
}
更多详细信息可以在这里找到