是否可以配置多个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()

对于单个客户端,它的工作方式就像魅力:

spring - 适用于不同oauth客户端的多个Springfox SecurityConfigurations-LMLPHP

问题:如果您有多个oauth2客户端ID ,如何配置springfox?
@Bean
fun api(): Docket {
    return Docket(DocumentationType.SWAGGER_2)
            // ...
            .securitySchemes(listOf(appA_AuthSecuritySchema(), appB_AuthSecuritySchema()))
            .securityContexts(listOf(appA_AuthSecurityContext(),appB_OAuthSecurityContext()))
}

我找不到任何将securitySchema与不同的SecurityConfiguration相关联的方法。

最佳答案

您是否考虑过将API分为多个扩展坞,每个扩展坞都具有开放的安全性设置?

此处提供一些其他信息:Configure security schemas and contexts in Springfox and Spring MVC

顺便说一句,仅供参考,但Springfox已死。我抵制了一段时间,希望这个家伙能回来,因为迁移到SpringDoc似乎是一项艰巨的任务。迁移实际上还算不错,我使用了许多Springfox注释功能。 Springfox有很多问题,没有支持。几乎有700个未解决的问题。另外,当一切都转移到Open API时,Springfox将使您永远陷入Swagger2 Realm 。

10-04 11:29