HttpClient 5 प्रयोग गरी RestTemplate प्रोक्सी प्रमाणहरू सीमित गर्नुहोस्
Spring 6 RestTemplate लाई ट्रान्सपोर्ट दिनु अघि Apache HttpClient 5 प्रमाणहरूलाई प्रोक्सी होस्ट र पोर्टमा सीमित गर्नुहोस्।
प्रोक्सी लगइन ट्रान्सपोर्टको प्रमाण प्रदायकको हो। Spring 6 र Apache HttpClient 5 का लागि, त्यो खातालाई मध्यस्थमा सीमित गर्नुहोस्:
var proxy = new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080);
var credentials = new org.apache.hc.client5.http.impl.auth
.BasicCredentialsProvider();
credentials.setCredentials(
new org.apache.hc.client5.http.auth.AuthScope(proxy),
new org.apache.hc.client5.http.auth.UsernamePasswordCredentials(
proxyUser, proxyPassword.toCharArray()));
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(proxy)
.setDefaultCredentialsProvider(credentials)
.build();
var factory = new org.springframework.http.client
.HttpComponentsClientHttpRequestFactory(http);
var rest = new org.springframework.web.client.RestTemplate(factory);अनुप्रयोगले proxyUser र proxyPassword मानहरू प्रदान गर्छ र HTTP क्लाइन्टको जीवनचक्रको स्वामी हुन्छ। कल साइटमा अर्को पूर्वनिर्धारित टेम्प्लेट नबनाई कार्यभारका लागि rest पुनः प्रयोग गर्नुहोस्।
AuthScope ले यी प्रमाणहरू कहाँ मान्य छन् भन्ने सीमित गर्छ। उदाहरणले सामान्य प्रयोगकर्तानाम/पासवर्ड प्रमाणहरू प्रदान गर्छ; BasicCredentialsProvider नामले हरेक चुनौतीलाई HTTP Basic योजना प्रयोग गर्न बाध्य पार्दैन।
HTTPS गन्तव्यको साथ, अनुप्रयोगको इन्क्रिप्टेड HTTP अनुरोध अघि नै, ट्रान्सपोर्टले CONNECT का क्रममा प्रोक्सी चुनौतीको जवाफ दिन सक्छ। Proxy-Authorization थप्ने सामान्य गन्तव्य इन्टरसेप्टर त्यो वार्तासँग बराबर हुँदैन।
कुनै पनि गन्तव्य खाता छुट्टै कन्फिगर गर्नुहोस्। यदि प्रोक्सीले अझै अनुरोध अस्वीकार गर्छ भने, यसले घोषणा गरेको प्रमाणीकरण योजना र प्रभावकारी होस्ट र पोर्ट राख्नुहोस्। अर्को एन्डपोइन्टका लागि सीमित प्रमाण पासवर्ड सही भएर मात्र मिल्ने छैन।