Een Spring WebClient-proxy configureren met Reactor Netty
Lever een met proxy geconfigureerde Reactor Netty-client via de connector van WebClient en houd rekening met het op CONNECT gebaseerde proxygedrag.
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();
Gebruik deze WebClient voor de aanroep. Voor openbare diensten op een toegestane openbare proxyroute levert de HTTP-proxylijst host- en portkandidaten; bevestig CONNECT-toegang tot de werkelijke bestemming. De typen HttpClient/ProxyProvider zijn van Reactor Netty, niet van Java's standaardclient. Een andere geïnjecteerde WebClient kan een andere connector behouden.
Het gedocumenteerde Netty HTTP-proxypad van Reactor Netty gebruikt CONNECT ongeacht het schema van de bestemming. Een gewoon HTTP-doel kan daarom tunnelmachtiging voor zijn poort nodig hebben, zelfs wanneer de proxy daar gewone doorgestuurde HTTP accepteert. Lees de werkelijke proxyrespons voordat u het schema van de URL wijzigt. Voor een compatibele Spring 6.2-implementatie die gewone HTTP/1.1-doorsturing nodig heeft, biedt het Jetty 12.0.35-connectorvoorbeeld dat alternatief.
Kies voor routering via JVM-eigenschappen de gedocumenteerde opt-in-configuratie van Reactor Netty. Een eigenschap die in de JVM aanwezig is, configureert niet elke connector.
Houd proxy-instelling/authenticatie, TLS van de bestemming en applicatieresponsen gescheiden. De connector levert de route, niet de inloggegevens van de bestemming of het protocolresultaat.