当前位置: 首页 > 知识库问答 >
问题:

如何为安全api添加swagger open api 3.0配置

滕学义
2023-03-14

我启用了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-用户界面和api文档。

但是我有几个使用keycloak OAuth 2.0保护的api。当我试图访问这些安全的api时,我收到了未经授权的错误(这是意料之中的)。我也想从swagger open api 3.0中测试安全的api。

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

共有1个答案

司寇星海
2023-03-14

您需要添加< code>SecurityScheme bean,如下所示。根据您的验证类型,您可以更改< code >方案

对于基本

@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")));
}

更多详细信息可在此处找到

 类似资料:
  • 我想使用javascript访问一个网站。但我在控制台中遇到以下错误。 拒绝连接到'https://example.com'因为它违反了以下内容安全策略指令:“default src'self'”。请注意,未显式设置“connect src”,因此使用“default src”作为回退。 我在index.html中添加了以下meta标记, 元超文本传输协议-Equiv="内容-安全-策略"内容="

  • 我想用JAVA构建一个简单的soap客户机来调用soap JAVA web服务。所以我在我的项目中导入了WSDL,并构建了客户端。因此,如果我试图运行我的代码,我会遇到以下错误: AVVERTENZA:找不到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart)。附件支持已禁用。AxisFault故障代码:{http

  • 我们已经为 name 和 email 字段添加了验证规则,现在要加入用户所需的最后一个常规属性:安全密码。每个用户都要设置一个密码(还要二次确认),数据库中则存储经过哈希加密后的密码。(你可能会困惑。这里所说的“哈希”不是 4.3.3 节介绍的 Ruby 数据结构,而是经过不可逆哈希算法计算得到的结果。)我们还要加入基于密码的认证验证机制,第 8 章会利用这个机制实现用户登录功能。 认证用户的方法

  • 问题内容: 我想在Spring Boot项目中添加基于方法的安全性。 似乎我只需要添加和bean,用和注释方法。 但是加入豆子之后 我得到一个消息:“配置默认的servlet处理需要ServletContext”: 我在网上可以找到的所有内容都与jUnit测试有关。为什么会引发此异常?我想念什么?我是否必须添加一个ServletContext bean,如果需要,如何添加? 我的要求是Gradle

  • 我想向我的kafka集群添加新用户,方法似乎是在zookeeper数据库中添加SCRAM-SHA-512/256配置,但我只知道如何使用命令行实用程序来完成,如下所示: 有没有使用Kafka API for Java的替代方法?

  • 我正在我的团队中进行一个新项目,我们正在按照API第一方法论实现一个API。我们正在使用从OpenAPI 3.0.3格式的yml文件生成我们的API。要生成swagger文件,我们使用springfox 2.9.2。我面临的问题是当我试图为请求的swagger添加安全性时。 “授权”按钮不会出现在“招摇过市”页面中,只会出现靠近请求的锁,但它不会执行任何操作(请参见下图)。 我观察到的是,如果我打