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 منزل کے ساتھ، ٹرانسپورٹ CONNECT کے دوران پراکسی چیلنج کا جواب دے سکتا ہے، اس سے پہلے کہ ایپلیکیشن کی خفیہ کردہ HTTP درخواست موجود ہو۔ Proxy-Authorization شامل کرنے والا عمومی منزل انٹرسیپٹر اس گفت و شنید کے برابر نہیں۔
کسی بھی منزل کے اکاؤنٹ کو الگ سے ترتیب دیں۔ اگر پراکسی اب بھی درخواست مسترد کرتا ہے تو اس کی اعلان کردہ توثیق کی اسکیم اور موثر ہوسٹ اور پورٹ محفوظ رکھیں۔ کسی دوسرے اینڈ پوائنٹ کے لیے محدود اسناد محض اس لیے نہیں ملیں گی کہ پاس ورڈ درست ہے۔