Configurare un proxy di Spring WebClient con Reactor Netty
Fornisci un client Reactor Netty configurato con un proxy tramite il connettore di WebClient e tieni conto del suo comportamento proxy basato su CONNECT.
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();Usa questo WebClient per la chiamata. Per i servizi pubblici su una rotta proxy pubblica consentita, l'elenco dei proxy HTTP fornisce candidati host e porta; conferma l'accesso CONNECT alla destinazione effettiva. I tipi HttpClient/ProxyProvider sono di Reactor Netty, non del client standard di Java. Un altro WebClient iniettato può mantenere un altro connettore.
Il percorso proxy HTTP Netty documentato di Reactor Netty usa CONNECT indipendentemente dallo schema della destinazione. Una destinazione HTTP semplice può quindi richiedere l'autorizzazione al tunnel verso la sua porta anche quando il proxy accetta lì HTTP inoltrato ordinario. Leggi la risposta effettiva del proxy prima di cambiare lo schema dell'URL. Per un deployment Spring 6.2 compatibile che richieda l'inoltro HTTP/1.1 ordinario, l'esempio di connettore Jetty 12.0.35 fornisce questa alternativa.
Per l'instradamento tramite proprietà JVM, scegli la configurazione opt-in documentata di Reactor Netty. Una proprietà presente nella JVM non configura ogni connettore.
Tieni separati configurazione/autenticazione del proxy, TLS della destinazione e risposte dell'applicazione. Il connettore fornisce la rotta, non le credenziali della destinazione né il risultato del protocollo.