RestTemplate proksi hisob ma'lumotlarini HttpClient 5 bilan cheklash
Apache HttpClient 5 hisob ma'lumotlarini transportni Spring 6 RestTemplate ga berishdan oldin proksi xost va porti bilan cheklang.
Proksiga kirish transportning hisob ma'lumotlari provayderiga tegishli. Spring 6 va Apache HttpClient 5 uchun bu hisobni vositachiga cheklang:
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);Ilova proxyUser va proxyPassword qiymatlarini taqdim etadi va HTTP mijozi hayot aylanishiga egalik qiladi. Chaqiruv joyida yana bir standart shablon qurish o'rniga ish yuki uchun rest ni qayta ishlating.
AuthScope bu hisob ma'lumotlari qayerda amal qilishini cheklaydi. Misol oddiy foydalanuvchi nomi/parol hisob ma'lumotlarini taqdim etadi; BasicCredentialsProvider nomi har bir chaqiriqni HTTP Basic sxemasidan foydalanishga majburlamaydi.
HTTPS manzili bilan transport ilovaning shifrlangan HTTP so'rovi paydo bo'lishidan oldin, CONNECT vaqtida proksi chaqirig'iga javob bera oladi. Proxy-Authorization qo'shadigan umumiy manzil interceptor bu muzokaraga teng emas.
Har qanday manzil hisobini alohida sozlang. Agar proksi so'rovni hali ham rad etsa, uning e'lon qilgan autentifikatsiya sxemasini hamda haqiqiy xost va portni saqlang. Boshqa so'nggi nuqta uchun cheklangan hisob ma'lumotlari faqat parol to'g'ri bo'lgani uchun mos kelmaydi.