Java Spring Boot oauth2配置中的多个客户端凭据-动态使用

Java Spring Boot oauth2配置中的多个客户端凭据-动态使用,java,spring,spring-boot,spring-security-oauth2,Java,Spring,Spring Boot,Spring Security Oauth2,我在spring boot中的应用程序使用oauth2连接到另一个rest服务。我想为其他客户端添加新凭据 目前,我的配置如下所示: @Bean ReactiveClientRegistrationRepository getRegistration( @Value("${spring.security.oauth2.client.provider.my-client1.token-uri:https://token.url/token}") Stri

我在spring boot中的应用程序使用oauth2连接到另一个rest服务。我想为其他客户端添加新凭据

目前,我的配置如下所示:

    @Bean
ReactiveClientRegistrationRepository getRegistration(
        @Value("${spring.security.oauth2.client.provider.my-client1.token-uri:https://token.url/token}") String tokenUri,
        @Value("${spring.security.oauth2.client.registration.my-client1.client-id:werwewewewf}") String clientId,
        @Value("${spring.security.oauth2.client.registration.my-client1.client-secret:erwerwerwerwe}") String clientSecret,
        @Value("${spring.security.oauth2.client.registration.my-client1.scopes:openid}") String scope
) {
    ClientRegistration registration = ClientRegistration
            .withRegistrationId("my-client1")
            .tokenUri(tokenUri)
            .clientId(clientId)
            .clientSecret(clientSecret)
            .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
            .scope(scope)
            .build();
    return new InMemoryReactiveClientRegistrationRepository(registration);
}
我可以看到InMemoryReactiveClientRegistration存储库可以进行多个ClientRegistration。我的猜测是,我可以通过这种方式添加多个客户端

但是,我希望在应用程序运行时动态使用它们。目前,我可以为每个WebClient bean设置一个客户端:

    @Bean(name = "my-webclient")
public WebClient webClient(@Qualifier("getRegistration") ReactiveClientRegistrationRepository clientRegistrations) {
    ServerOAuth2AuthorizedClientExchangeFilterFunction oauth = new ServerOAuth2AuthorizedClientExchangeFilterFunction(
            clientRegistrations, new UnAuthenticatedServerOAuth2AuthorizedClientRepository());
    oauth.setDefaultClientRegistrationId("my-client1");
    return WebClient.builder()
            .filter(oauth)
            .build();
}
我想验证每个客户机请求它是什么类型的客户机,并为此客户机使用适当的oauth2凭据。有什么好办法可以做到这一点吗