首页 > 解决方案 > springdoc:如何为请求设置默认的 JWT 令牌(演示 API)?

问题描述

我正在将我们的 REST API 从 Springfox 迁移到 Springdoc。到目前为止,我们的 Swagger-UI 有一个(长期存在的)开发 JWT 令牌预设。这非常方便(可以只运行我们所有经过身份验证的端点)。

之前,我们可以通过以下代码实现这一点(它使用 API 密钥):

/** Swagger UI: We send a default bearer token that is valid for a long time */
@Bean
@Profile("development")
SecurityConfiguration security() {
    return new SecurityConfiguration(null, null, null, null,
            TEST_TOKEN, ApiKeyVehicle.HEADER, "Authorization", ",");
}

Springdoc中有类似的东西吗?

我尝试设置一个springdoc.swagger-ui.oauth.clientSecret和一个 OAUTH2 流。但是 clientSecret 没有在浏览器中预设为默认值。

我们的 OpenAPI 如下所示:

@Bean
public OpenAPI backend() {
    String securitySchemeName = "bearerAuth";
    return new OpenAPI()
            .addSecurityItem(new SecurityRequirement().addList(securitySchemeName))
            .components(
                new Components()
                    .addSecuritySchemes(securitySchemeName,
                        new SecurityScheme()
                            .name(securitySchemeName)
                            .type(SecurityScheme.Type.OAUTH2)
                            .scheme("bearer")
                            .flows(new OAuthFlows().implicit(new OAuthFlows().getImplicit()))
                            .bearerFormat("JWT")
                    )
            ); }

标签: jwttokendefaultspringdoc

解决方案


推荐阅读