A RestTemplate proxy hitelesítő adatainak szűkítése HttpClient 5-tel
Szűkítse az Apache HttpClient 5 hitelesítő adatait a proxy hosztjára és portjára, mielőtt a szállítást egy Spring 6 RestTemplate-nek adja.
A proxy bejelentkezés a szállítás hitelesítőadat-szolgáltatójához tartozik. Spring 6 és Apache HttpClient 5 esetén szűkítse ezt a fiókot a közvetítőre:
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);Az alkalmazás biztosítja a proxyUser és proxyPassword értékeket, és birtokolja a HTTP-kliens életciklusát. A munkaterheléshez használja újra a restet, ahelyett hogy a hívási helyen újabb alapértelmezett sablont építene.
Az AuthScope korlátozza, hol érvényesek ezek a hitelesítő adatok. A példa közönséges felhasználónév/jelszó hitelesítő adatokat ad; a BasicCredentialsProvider név nem kényszeríti minden kihívást a HTTP Basic séma használatára.
HTTPS-cél esetén a szállítás a CONNECT során válaszolhat a proxy kihívására, mielőtt az alkalmazás titkosított HTTP-kérése létezne. Egy általános cél-interceptor, amely Proxy-Authorization fejlécet ad hozzá, nem egyenértékű ezzel az egyeztetéssel.
Minden célfiókot külön állítson be. Ha a proxy továbbra is elutasítja a kérést, őrizze meg a hirdetett hitelesítési sémát, valamint a tényleges hosztot és portot. Egy másik végponthoz kötött hitelesítő adat nem fog egyezni csak azért, mert a jelszó helyes.