אַ רעסורס WebClient וואָס גייט דורך אַ פּראָקסי קען נאָך דורכפֿאַלן פֿאַר דעם API-רוף אויב דער טאָקען-באַקומען נוצט אַן אַנדער קאָנעקטאָר. פֿאַר דעם רעאַקטיוון client_credentials שטראָם אין Spring Security 6.5 פֿאַרבינד אַלע דרײַ טיילן:

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 באַשטימט דעם טאָקען-HTTP-קליענט; provider.setAccessTokenResponseClient באַשטימט אים צום grant-פּראָוויידער; manager.setAuthorizedClientProvider אינסטאַלירט דעם פּראָוויידער. באַניץ דעם פֿאַרוואַלטער אין דעם עמעסטן OAuth פֿילטער אָדער authorized-client אַרבעטספֿלוס.

HttpClient און ProxyProvider זענען Reactor Netty טיפּן. WebClient און זײַן קאָנעקטאָר זענען Spring WebFlux טיפּן. גיב דעם עקזיסטירנדיקן ReactiveClientRegistrationRepository ווי registrations און ReactiveOAuth2AuthorizedClientService ווי authorizedClients.

דער פּראָוויידער האַנדלט client_credentials; האַלט אַ פּאַסיקע פּראָוויידער-קייט אויב מען דאַרף אַנדערע grant. דאָס ביישפּיל האָט נישט קיין פּראָקסי-קאנטע; דאָס וואָלט געהערט צו דער טראַנספּאָרט-שיכט, נישט צו OAuth client ID/secret. פֿאַר אַ פּובליקן token endpoint וואָס איז ערלויבט דורך אַ פּובליקן מיטלמאַן, קלייב אויס host און port פֿון דער HTTP-פּראָקסי ליסטע.

קאָנפֿיגוריר אויך דעם קאָנעקטאָר פֿון דעם באַשיצטן רעסורס ווען יענע API-רופֿן דאַרפֿן דעם וועג. טאָקען- און API-הצלחה זענען באַזונדערע רעזולטאַטן.

פֿאַרבונדענע אַרטיקלען