In boarne WebClient dy't fia in proxy giet, kin noch foar syn API-oprop mislearje as it krijen fan in token in oare connector brûkt. Foar de reaktive client_credentials-stream fan Spring Security 6.5 ferbynst jo alle trije dielen:

HttpClient route = HttpClient.create()
    .proxy(p -> p.type(ProxyProvider.Proxy.HTTP)
        .host("proxy.example").port(8080));
WebClient tokenHttp = WebClient.builder()
    .clientConnector(new ReactorClientHttpConnector(route))
    .build();

var tokens = new WebClientReactiveClientCredentialsTokenResponseClient();
tokens.setWebClient(tokenHttp);

var provider = new ClientCredentialsReactiveOAuth2AuthorizedClientProvider();
provider.setAccessTokenResponseClient(tokens);

var manager = new AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(
    registrations, authorizedClients);
manager.setAuthorizedClientProvider(provider);

tokens.setWebClient jout de token-HTTP-klient oan; provider.setAccessTokenResponseClient jout dy oan de grant-provider; manager.setAuthorizedClientProvider ynstallearret dy provider. Brûk dizze behearder yn it echte OAuth-filter of yn de authorized-client-wurkstream.

HttpClient en ProxyProvider binne Reactor Netty-typen. WebClient en syn connector binne Spring WebFlux-typen. Jou de besteande ReactiveClientRegistrationRepository as registrations en ReactiveOAuth2AuthorizedClientService as authorizedClients.

Dizze provider behannelet client_credentials; hâld in passende providerkeatling as oare grants nedich binne. It foarbyld hat gjin proxy-akkount; dat soe by it transport hearre, net by de OAuth client ID/secret. Foar in iepenbier token-endpoint dat fia in iepenbiere tuskenpersoan tastien is, kies host en poarte út de HTTP-proxylist.

Konfigurearje ek de connector fan de beskerme boarne as dy API-oproppen de rûte nedich hawwe. Token- en API-sukses binne aparte útkomsten.

Relatearre artikelen