【问题标题】:How can I add swagger open api 3.0 configuration for secured api's如何为安全 api 添加 swagger open api 3.0 配置
【发布时间】:2021-08-06 00:25:09
【问题描述】:

我已启用 Swagger 开放 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-docs

但我很少有使用 keycloak OAuth 2.0 保护的 api。当我尝试访问那些安全的 api 时,我遇到了未经授权的错误(这是预期的)。我也想从 swagger open api 3.0 测试安全的 api。

有人可以帮我在 swagger open api 3.0 中启用授权,以从 swagger 测试我的安全 api。

【问题讨论】:

    标签: spring-boot swagger swagger-ui openapi springdoc-openapi-ui


    【解决方案1】:

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

    基本款

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

    智威汤逊

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

    更多详情可以查看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多