Konfigurera en Spring WebClient-proxy med Reactor Netty
Tillhandahåll en proxykonfigurerad Reactor Netty-klient via WebClients connector och ta hänsyn till dess CONNECT-baserade proxybeteende.
HttpClient httpClient = HttpClient.create()
.proxy(proxy -> proxy.type(ProxyProvider.Proxy.HTTP)
.host("203.0.113.10").port(8080));
WebClient client = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
Använd denna WebClient för anropet. För offentliga tjänster på en tillåten offentlig proxyväg tillhandahåller HTTP-proxylistan kandidater för host och port; bekräfta CONNECT-åtkomst till den faktiska destinationen. Typerna HttpClient/ProxyProvider tillhör Reactor Netty, inte Javas standardklient. En annan injicerad WebClient kan behålla en annan connector.
Reactor Nettys dokumenterade Netty HTTP-proxyväg använder CONNECT oavsett destinationens schema. Ett vanligt HTTP-mål kan därför behöva tunneltillstånd till sin port även när proxyn accepterar vanlig vidarebefordrad HTTP där. Läs proxyns faktiska svar innan du ändrar URL:ens schema. För en kompatibel Spring 6.2-distribution som behöver vanlig HTTP/1.1-vidarebefordran ger Jetty 12.0.35-connectorexemplet det alternativet.
För JVM-egenskapsrouting, välj Reactor Nettys dokumenterade opt-in-konfiguration. En egenskap som finns i JVM:en konfigurerar inte varje connector.
Håll proxykonfiguration/autentisering, destinationens TLS och applikationssvar åtskilda. Connectorn tillhandahåller vägen, inte destinationens autentiseringsuppgifter eller protokollresultat.