Ohun èlò WebClient tí ń gba proxy kọjá lè kùnà ṣáájú ìpè API rẹ̀ bí gbígba token bá ń lo connector mìíràn. Fún ìṣàn client_credentials alátako ti Spring Security 6.5, so àwọn ẹ̀ka mẹ́ta pọ̀:

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 ń yan HTTP client token; provider.setAccessTokenResponseClient ń yan án fún olùpèsè grant; manager.setAuthorizedClientProvider ń fi olùpèsè yẹn sórí. Lo olùdarí yìí nínú àlẹ̀mọ́ OAuth gidi tàbí ìṣàn iṣẹ́ authorized-client.

HttpClient àti ProxyProvider jẹ́ irú Reactor Netty. WebClient àti connector rẹ̀ jẹ́ irú Spring WebFlux. Fi ReactiveClientRegistrationRepository tó wà bí registrations àti ReactiveOAuth2AuthorizedClientService bí authorizedClients.

Olùpèsè yìí ń bójú tó client_credentials; pa ìdìpọ̀ olùpèsè tó yẹ mọ́ bí a bá nílò àwọn grant mìíràn. Àpẹẹrẹ kò ní àkọsílẹ̀ proxy; ìyẹn yóò jẹ́ ti ìpele gbígbéṣẹ́ kì í ṣe OAuth client ID/secret. Fún token endpoint gbogbogbo tí a gbà láàyè nípasẹ̀ alárinà gbogbogbo, yan host àti port láti àkójọ proxy HTTP.

Tún ṣètò connector ohun èlò tí a dáàbò bò nígbà tí àwọn ìpè API yẹn bá nílò ipa-ọ̀nà. Àṣeyọrí token àti ti API jẹ́ àbájáde ọ̀tọ̀ọ̀tọ̀.

Àwọn àpilẹ̀kọ tó jọra