Kufizoni kredencialet e proxy-t të RestTemplate me HttpClient 5
Kufizoni kredencialet e Apache HttpClient 5 te hosti dhe porta e proxy-t përpara se t'i jepni transportin një RestTemplate të Spring 6.
Hyrja në proxy i përket ofruesit të kredencialeve të transportit. Me Spring 6 dhe Apache HttpClient 5, kufizoni atë llogari te ndërmjetësi:
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);Aplikacioni furnizon vlerat proxyUser dhe proxyPassword dhe zotëron ciklin e jetës të klientit HTTP. Ripërdorni rest për ngarkesën e punës në vend që të ndërtoni një tjetër shabllon të paracaktuar në vendin e thirrjes.
AuthScope kufizon se ku këto kredenciale janë të vlefshme. Shembulli furnizon kredenciale të zakonshme emri përdoruesi/fjalëkalimi; emri BasicCredentialsProvider nuk detyron çdo sfidë të përdorë skemën HTTP Basic.
Me një destinacion HTTPS, transporti mund t'i përgjigjet një sfide të proxy-t gjatë CONNECT, përpara se të ekzistojë kërkesa HTTP e kriptuar e aplikacionit. Një interceptor i përgjithshëm destinacioni që shton Proxy-Authorization nuk është ekuivalent me atë negociatë.
Konfiguroni veçmas çdo llogari destinacioni. Nëse proxy vazhdon ta refuzojë kërkesën, mbani skemën e autentikimit që shpall dhe hostin e portën efektive. Një kredencial i kufizuar për një pikë tjetër fundore nuk do të përputhet vetëm sepse fjalëkalimi është i saktë.