Prijava na proxy pripada dobavljaču akreditiva transporta. Uz Spring 6 i Apache HttpClient 5, ograničite taj 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 daje vrijednosti proxyUser i proxyPassword i posjeduje životni ciklus HTTP klijenta. Ponovo upotrijebite rest za radno opterećenje umjesto da na mjestu poziva izgradite još jedan zadani predložak.

AuthScope ograničava gdje su te akreditive važeće. Primjer daje obične akreditive korisničkog imena i lozinke; naziv BasicCredentialsProvider ne prisiljava svaki izazov na HTTP Basic shemu.

S HTTPS odredištem transport može odgovoriti na proxy izazov tijekom CONNECT, prije nego što zahtjev aplikacije bude šifriran. Opći presretač odredišta koji dodaje Proxy-Authorization nije jednak tom pregovaranju.

Konfigurirajte svaki račun odredišta zasebno. Ako proxy i dalje odbija zahtjev, zadržite njegovu objavljenu shemu autentifikacije te stvarni host i port. Akreditive ograničene na drugu krajnju točku neće se podudarati samo zato što je lozinka ispravna.

Povezani članci