پیکربندی پروکسی 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 مقصد و پاسخهای برنامه را جدا نگه دارید. کانکتور مسیر را فراهم میکند، نه اعتبارنامه مقصد یا نتیجه پروتکل.