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.

Kapcsolódó cikkek