RestTemplate-Proxy-Berechtegungen mat HttpClient 5 aschränken
Schränkt d'Apache HttpClient 5-Berechtegungen op de Proxy-Host an de Port an, ier Dir den Transport un eng Spring 6 RestTemplate gitt.
E Proxy-Login gehéiert zum Berechtegungsprovider vum Transport. Mat Spring 6 an Apache HttpClient 5 schränkt Dir dee Kont op den Intermédiaire an:
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);D'Applikatioun liwwert d'Wäerter proxyUser a proxyPassword a besëtzt de Liewenszyklus vum HTTP-Client. Benotzt rest erëm fir d'Aarbechtslaascht, amplaz op der Uruffplaz nach eng Standardsschabloun ze bauen.
AuthScope begrenzt, wou dës Berechtegungen zoulässeg sinn. D'Beispill liwwert gewéinlech Benotzernumm/Passwuert-Berechtegungen; den Numm BasicCredentialsProvider zwingt net all Erausfuerderung, den HTTP Basic-Schema ze benotzen.
Mat engem HTTPS-Zil kann den Transport eng Proxy-Erausfuerderung wärend CONNECT beäntwerten, ier déi verschlësselt HTTP-Ufro vun der Applikatioun existéiert. En allgemengen Zil-Interceptor, deen Proxy-Authorization derbäisetzt, ass net gläichwäerteg mat där Verhandung.
Konfiguréiert all Zilkont separat. Wann de Proxy d'Ufro nach ëmmer refuséiert, behält säin annoncéierten Authentifikatiounsschema souwéi den effektiven Host an d'Port. Eng Berechtegung, déi op en aneren Endpunkt limitéiert ass, passt net just well d'Passwuert richteg ass.