Konfigurer en Spring WebClient-proxy med Reactor Netty
Lever en proxy-konfigureret Reactor Netty-klient gennem WebClients connector, og tag højde for dens CONNECT-baserede proxyadfærd.
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();Brug denne WebClient til kaldet. Til offentlige tjenester på en tilladt offentlig proxy-rute leverer HTTP-proxylisten kandidater til vært og port; bekræft CONNECT-adgang til den faktiske destination. Typerne HttpClient/ProxyProvider er Reactor Nettys, ikke Javas standardklient. En anden injiceret WebClient kan beholde en anden connector.
Reactor Nettys dokumenterede Netty HTTP-proxyvej bruger CONNECT uanset destinationsens skema. Et almindeligt HTTP-mål kan derfor kræve tunneladgang til sin port, selv når proxyen accepterer almindelig videresendt HTTP der. Læs proxyens faktiske svar, før du ændrer URL'ens skema. Til en kompatibel Spring 6.2-udrulning, der har brug for almindelig HTTP/1.1-videresendelse, giver Jetty 12.0.35-connectoreksemplet dette alternativ.
Til JVM-egenskabsbaseret routing skal du vælge Reactor Nettys dokumenterede opt-in-konfiguration. En egenskab, der findes i JVM'en, konfigurerer ikke alle connectors.
Hold proxyopsætning/autentificering, destinationens TLS og applikationssvar adskilt. Connectoren leverer ruten, ikke destinationens legitimationsoplysninger eller protokolresultat.