Proksi orqali o'tuvchi WebClient resursi token olish boshqa konnektordan foydalansa, API chaqiruvidan oldin baribir muvaffaqiyatsiz bo'lishi mumkin. Spring Security 6.5 reaktiv client_credentials oqimi uchun uch qismni ham ulang:

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 token HTTP mijozini tayinlaydi; provider.setAccessTokenResponseClient uni grant provayderiga tayinlaydi; manager.setAuthorizedClientProvider o'sha provayderni o'rnatadi. Bu menejerni haqiqiy OAuth filtrda yoki authorized-client ish oqimida ishlating.

HttpClient va ProxyProvider Reactor Netty turlari. WebClient va uning konnektori Spring WebFlux turlari. Mavjud ReactiveClientRegistrationRepository ni registrations sifatida va ReactiveOAuth2AuthorizedClientService ni authorizedClients sifatida bering.

Bu provayder client_credentials ni boshqaradi; boshqa grantlar kerak bo'lsa mos provayderlar zanjirini saqlang. Misolda proksi hisobi yo'q; u OAuth client ID/secret emas, transport qatlamiga tegishli. Ommaviy vositachi orqali ruxsat etilgan ommaviy token endpoint uchun HTTP proksi ro'yxatidan host va port tanlang.

O'sha API chaqiruvlariga marshrut kerak bo'lganda himoyalangan resurs konnektorini ham sozlang. Token va API muvaffaqiyati alohida natijalar.

O'xshash maqolalar