Конфигуриране на прокси за Spring WebClient с Reactor Netty
Предоставете Reactor Netty клиент, конфигуриран с прокси, чрез конектора на WebClient и отчитайте поведението му на прокси, основано на 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();Използвайте този WebClient за извикването. За публични услуги по разрешен публичен прокси маршрут списъкът с HTTP прокси предоставя кандидати за хост и порт; потвърдете достъп по CONNECT до действителната дестинация. Типовете HttpClient/ProxyProvider са на Reactor Netty, а не стандартния клиент на Java. Друг инжектиран WebClient може да запази друг конектор.
Документираният път за HTTP прокси на Netty в Reactor Netty използва CONNECT независимо от схемата на дестинацията. Затова обикновена HTTP цел може да се нуждае от разрешение за тунел към своя порт, дори когато проксито там приема обикновен препратен HTTP. Прочетете действителния отговор на проксито, преди да промените схемата на URL адреса. За съвместимо внедряване на Spring 6.2, което се нуждае от обикновено препращане на HTTP/1.1, примерът с конектор Jetty 12.0.35 предоставя тази алтернатива.
За маршрутизиране чрез JVM свойства изберете документираната opt-in конфигурация на Reactor Netty. Свойство, налично в JVM, не конфигурира всеки конектор.
Дръжте настройката/удостоверяването на проксито, TLS на дестинацията и отговорите на приложението отделно. Конекторът предоставя маршрута, а не идентификационните данни на дестинацията или резултата от протокола.