Puhverserverisse sisselogimine kuulub transporti mandaadipakkuja juurde. Spring 6 ja Apache HttpClient 5 puhul piira see konto vahendajaga:

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);

Rakendus annab väärtused proxyUser ja proxyPassword ning omab HTTP-kliendi elutsüklit. Kasuta töökoormuse jaoks uuesti resti, selle asemel et kutsungikohas luua veel üks vaikimisi mall.

AuthScope piirab, kus need mandaadid kehtivad. Näide annab tavalised kasutajanime/parooli mandaadid; nimi BasicCredentialsProvider ei sunni iga väljakutset kasutama HTTP Basic skeemi.

HTTPS-sihtkoha korral saab transport vastata puhverserveri väljakutsele CONNECTi ajal, enne kui rakenduse krüpteeritud HTTP-päring on olemas. Üldine sihtkoha interceptor, mis lisab Proxy-Authorization, ei ole selle läbirääkimisega samaväärne.

Konfigureeri iga sihtkoha konto eraldi. Kui puhverserver siiski päringu tagasi lükkab, säilita selle teatatud autentimisskeem ning tegelik host ja port. Muule lõpp-punktile piiratud mandaat ei klapi lihtsalt seetõttu, et parool on õige.

Seotud artiklid