Prihlásenie k proxy patrí poskytovateľovi údajov transportu. Pri Spring 6 s Apache HttpClient 5 obmedzte tento účet na prostredníka:

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

Aplikácia poskytuje hodnoty proxyUser a proxyPassword a vlastní životný cyklus HTTP klienta. Pre záťaž znova použite rest, namiesto vytvárania ďalšej predvolenej šablóny v mieste volania.

AuthScope obmedzuje, kde sú tieto údaje platné. Príklad poskytuje bežné údaje s používateľským menom a heslom; názov BasicCredentialsProvider nenúti každú výzvu používať schému HTTP Basic.

Pri cieli HTTPS môže transport odpovedať na výzvu proxy počas CONNECT, skôr než existuje šifrovaná HTTP požiadavka aplikácie. Všeobecný interceptor cieľa pridávajúci Proxy-Authorization nie je s týmto vyjednávaním ekvivalentný.

Nakonfigurujte každý účet cieľa samostatne. Ak proxy požiadavku stále odmieta, zachovajte jeho inzerovanú schému overovania a skutočného hostiteľa a port. Údaje obmedzené na iný koncový bod nebudú zodpovedať len preto, že heslo je správne.

Súvisiace články