Avgrens RestTemplate-proxyopplysningar med HttpClient 5
Avgrens Apache HttpClient 5-legitimasjon til proxyverten og -porten før du gjev transporten til ein Spring 6 RestTemplate.
Ei proxypålogging høyrer til legitimasjonsleverandøren til transporten. Med Spring 6 og Apache HttpClient 5 avgrensar du den kontoen til mellomleddet:
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);Programmet leverer verdiane proxyUser og proxyPassword og eig livssyklusen til HTTP-klienten. Gjenbruk rest for arbeidslasta i staden for å byggje ein ny standardmal på kallstaden.
AuthScope avgrensar kvar desse opplysningane er gyldige. Dømet leverer vanlege brukarnamn/passord-opplysningar; namnet BasicCredentialsProvider tvingar ikkje kvar utfordring til å bruke HTTP Basic-skjemaet.
Med ein HTTPS-destinasjon kan transporten svare på ei proxyutfordring under CONNECT, før den krypterte HTTP-førespurnaden til programmet finst. Ein generisk destinasjonsinterceptor som legg til Proxy-Authorization er ikkje jamgod med den forhandlinga.
Konfigurer kvar destinasjonskonto separat. Viss proxyen framleis avviser førespurnaden, behald det annonserte autentiseringsskjemaet samt den effektive verten og porten. Opplysningar avgrensa til eit anna endepunkt vil ikkje samsvare berre fordi passordet er rett.