Konfigurer en Spring WebClient-proxy med Reactor Netty
Tilby en proxykonfigurert Reactor Netty-klient via WebClients connector, og ta høyde for den CONNECT-baserte proxyoppførselen.
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();
Bruk denne WebClient-en for kallet. For offentlige tjenester på en tillatt offentlig proxy-rute tilbyr HTTP-proxylisten kandidater for host og port; bekreft CONNECT-tilgang til den faktiske destinasjonen. Typene HttpClient/ProxyProvider er Reactor Nettys, ikke Javas standardklient. En annen injisert WebClient kan beholde en annen connector.
Den dokumenterte Netty HTTP-proxyveien i Reactor Netty bruker CONNECT uansett destinasjonens skjema. Et vanlig HTTP-mål kan derfor kreve tunnelstillatelse til porten sin selv når proxyen godtar vanlig videresendt HTTP der. Les den faktiske proxyresponsen før du endrer skjemaet i URL-en. For en kompatibel Spring 6.2-utrulling som trenger vanlig HTTP/1.1-videresending, gir Jetty 12.0.35-connectoreksempelet det alternativet.
For ruting med JVM-egenskaper, velg den dokumenterte opt-in-konfigurasjonen til Reactor Netty. En egenskap som finnes i JVM-en konfigurerer ikke hver connector.
Hold proxyoppsett/autentisering, destinasjonens TLS og applikasjonssvar atskilt. Connectoren leverer ruten, ikke destinasjonens legitimasjon eller protokollresultatet.