Omejite proxy poverilnice RestTemplate s HttpClient 5
Omejite poverilnice Apache HttpClient 5 na gostitelja in vrata proxyja, preden prenos predate Spring 6 RestTemplate.
Prijava v proxy spada k ponudniku poverilnic prenosa. Pri Spring 6 z Apache HttpClient 5 omejite ta račun na posrednika:
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);Aplikacija zagotavlja vrednosti proxyUser in proxyPassword in upravlja življenjski cikel odjemalca HTTP. Znova uporabite rest za delovno obremenitev, namesto da bi na mestu klica zgradili še eno privzeto predlogo.
AuthScope omejuje, kje so te poverilnice veljavne. Primer zagotavlja običajne poverilnice z uporabniškim imenom in geslom; ime BasicCredentialsProvider ne sili vsakega izziva k uporabi sheme HTTP Basic.
Pri cilju HTTPS lahko prenos odgovori na izziv proxyja med CONNECT, preden obstaja šifrirana zahteva HTTP aplikacije. Splošni prestreznik cilja, ki doda Proxy-Authorization, ni enakovreden temu pogajanju.
Vsak račun cilja konfigurirajte ločeno. Če proxy zahtevo še vedno zavrača, ohranite njegovo oglašeno shemo preverjanja ter dejanskega gostitelja in vrata. Poverilnice, omejene na drugo končno točko, se ne bodo ujemale samo zato, ker je geslo pravilno.