Abin amfani WebClient da ke tafiya ta proxy na iya gazawa kafin kiran API ɗinsa idan samun token yana amfani da wata hanyar haɗi. Don tafiyar client_credentials mai amsawa ta Spring Security 6.5, haɗa sassan uku ɗin:

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 yana ba da abokin ciniki na HTTP na token; provider.setAccessTokenResponseClient yana ba da shi ga mai bada grant; manager.setAuthorizedClientProvider yana shigar da wannan mai bada. Yi amfani da wannan manaja a ainihin matatar OAuth ko a tsarin aikin authorized-client.

HttpClient da ProxyProvider nau'ikan Reactor Netty ne. WebClient da hanyar haɗinsa nau'ikan Spring WebFlux ne. Ka ba da ReactiveClientRegistrationRepository da ke akwai a matsayin registrations da ReactiveOAuth2AuthorizedClientService a matsayin authorizedClients.

Wannan mai bada yana kula da client_credentials; ka riƙe jerin masu bada da ya dace idan ana buƙatar wasu grant. Misalin ba shi da asusun proxy; wannan zai kasance na jigilar bayanai ba na OAuth client ID/secret ba. Don tashar token ta jama'a da aka yarda da ita ta hanyar matsakaici na jama'a, zaɓi host da port daga jerin proxy na HTTP.

Ka kuma saita hanyar haɗin abin amfani mai kariya lokacin da waɗannan kiran API ke buƙatar hanyar. Nasarar token da nasarar API sakamako ne daban-daban.

Labarai masu alaƙa