如何要求 Swagger UI 在全局范围内为每个端点添加不记名令牌字段?

How to ask Swagger UI to add bearer token field for each endpoint globally?

由于描述的问题 我正在迁移到 Springdoc。现在 在 Swagger UI 中,我没有每个端点的不记名令牌字段,但这是预期的,因为这些端点是安全的。

我有以下配置:

@Bean
public OpenAPI myAPI() {
  return new OpenAPI()
      .components(new Components()
          .addSecuritySchemes("bearer-key",
              new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("bearer").bearerFormat("JWT")))
      .info(new Info()
          .title("MY API")
          .description("Documentation of API v.1.0")
          .version("1.0")
      ).addSecurityItem(
          new SecurityRequirement().addList("bearer-jwt", Arrays.asList("read", "write")));
}

我找到了解决方法 - 将每个端点标记为:

@Operation(summary = "some description", security = { @SecurityRequirement(name = "bearer-key") })

但是我不喜欢做这种重复的工作

有没有办法让它在每个休息端点都成为全局的?

工作原理略有不同

当我使用 swagger 2 时,我必须提供类似

的令牌

Bearer eyJhbGciOi....

但现在我必须像

一样提供它

eyJhbGciOi....

public OpenAPI myAPI() {
        return new OpenAPI()
                .components(new Components()
                        .addSecuritySchemes("bearer-key",
                                new SecurityScheme()
                                        .type(SecurityScheme.Type.HTTP)
                                        .scheme("bearer")
                                        .bearerFormat("JWT")
                        )
                )
                .info(new Info()
                        .title("My API")
                        .description("Documentation of API v.1.0")
                        .version("1.0")
                ).addSecurityItem(
                        new SecurityRequirement()
                                .addList("bearer-jwt", Arrays.asList("read", "write"))
                                .addList("bearer-key", Collections.emptyList())
                );
    }