Configurarea unui proxy Spring WebClient cu Reactor Netty
Furnizați un client Reactor Netty configurat cu proxy prin conectorul WebClient și țineți cont de comportamentul său de proxy bazat pe 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();
Folosiți acest WebClient pentru apel. Pentru serviciile publice pe o rută publică de proxy permisă, lista de proxy-uri HTTP oferă candidați host și port; confirmați accesul CONNECT la destinația reală. Tipurile HttpClient/ProxyProvider sunt ale Reactor Netty, nu ale clientului standard Java. Un alt WebClient injectat poate păstra alt conector.
Calea documentată de proxy HTTP Netty a Reactor Netty folosește CONNECT indiferent de schema destinației. O țintă HTTP simplă poate necesita deci permisiune de tunel către portul său chiar și când proxy-ul acceptă acolo HTTP obișnuit redirecționat. Citiți răspunsul real al proxy-ului înainte de a schimba schema URL-ului. Pentru o implementare compatibilă Spring 6.2 care are nevoie de redirecționare HTTP/1.1 obișnuită, exemplul de conector Jetty 12.0.35 oferă această alternativă.
Pentru rutarea prin proprietăți JVM, alegeți configurația opt-in documentată a Reactor Netty. O proprietate prezentă în JVM nu configurează fiecare conector.
Păstrați separat configurarea/autentificarea proxy-ului, TLS-ul destinației și răspunsurile aplicației. Conectorul furnizează ruta, nu acreditările destinației sau rezultatul protocolului.