Omezte přihlašovací údaje proxy v RestTemplate pomocí HttpClient 5
Omezte údaje Apache HttpClient 5 na hostitele a port proxy, než předáte transport do Spring 6 RestTemplate.
Přihlášení k proxy patří poskytovateli údajů transportu. U Spring 6 s Apache HttpClient 5 omezte tento účet na prostřední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);Aplikace dodává hodnoty proxyUser a proxyPassword a vlastní životní cyklus HTTP klienta. Pro zátěž znovu použijte rest, místo abyste v místě volání vytvářeli další výchozí šablonu.
AuthScope omezuje, kde jsou tyto údaje platné. Příklad dodává běžné údaje s uživatelským jménem a heslem; název BasicCredentialsProvider nenutí každou výzvu používat schéma HTTP Basic.
U cíle HTTPS může transport odpovědět na výzvu proxy během CONNECT, dříve než existuje šifrovaný HTTP požadavek aplikace. Obecný interceptor cíle přidávající Proxy-Authorization není s tímto vyjednáváním ekvivalentní.
Nakonfigurujte každý účet cíle zvlášť. Pokud proxy požadavek stále odmítá, uchovejte jeho inzerované schéma ověřování a skutečného hostitele a port. Údaje omezené na jiný koncový bod nebudou odpovídat jen proto, že je heslo správné.