प्रोक्सीबाट जाने स्रोत WebClient आफ्नो API कल अघि नै असफल हुन सक्छ यदि टोकन प्राप्तिले अर्को कनेक्टर प्रयोग गर्छ। Spring Security 6.5 को रिएक्टिभ client_credentials प्रवाहका लागि तीनै भाग जोड्नुहोस्:

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 का लागि HTTP प्रोक्सी सूचीबाट host र port छान्नुहोस्।

ती API कलहरूलाई मार्ग चाहिएको बेला सुरक्षित स्रोतको कनेक्टर पनि कन्फिगर गर्नुहोस्। टोकन र API को सफलता छुट्टाछुट्टै नतिजा हुन्।

सम्बन्धित लेखहरू