不同 oauth 客户端的多个 Springfox SecurityConfigurations

Multiple Springfox SecurityConfigurations for different oauth clients

是否可以配置多个SecurityConfiguration

使用 SecurityConfiguration 可以为 OAuth 客户端设置客户端 ID 和密码:

@Bean
fun swaggerSecurityConfiguration() =
        SecurityConfigurationBuilder.builder()
                .clientId(CLIENT_ID)
                .realm(REALM)
                .appName(APP_A)
                .additionalQueryStringParams(mapOf("nonce" to UUID.randomUUID().toString()))
                .build()

对于单个客户端,它就像魅力一样:

问题:如果您有多个 oauth2 客户端 ID,如何配置 springfox?

@Bean
fun api(): Docket {
    return Docket(DocumentationType.SWAGGER_2)
            // ...
            .securitySchemes(listOf(appA_AuthSecuritySchema(), appB_AuthSecuritySchema()))
            .securityContexts(listOf(appA_AuthSecurityContext(),appB_OAuthSecurityContext()))
}

我找不到任何方法将 securitySchemas 关联到不同的 SecurityConfigurations。

您是否考虑过将您的 API 分成多个摘要,每个摘要都有其开放的安全设置?

这里有一些附加信息:Configure security schemas and contexts in Springfox and Spring MVC

顺便说一句,仅供参考,但 Springfox 已死。我有一段时间拒绝离开它,希望那个人能回心转意,因为迁移到 SpringDoc 似乎是一项艰巨的任务。迁移实际上并不太糟糕,我使用了很多 Springfox 注释功能。 Springfox 有很多问题并且没有支持。将近 700 个未解决的问题。另外,当一切都转向 Open API.

时,你将永远停留在 Springfox 的 Swagger2 领域中

据我所知,这在 springfox 中是不可能的,我也做了一些研发并找到了这个 git 问题,所以你可以从下面的问题中找到它已经关闭的问题所以请检查它 git 问题。 https://github.com/springfox/springfox/issues/959

谢谢!

Karmdip J.