Reactor Netty का HTTP प्रॉक्सी हैंडलर सादे HTTP गंतव्य के लिए भी CONNECT टनल स्थापित करता है। यदि इच्छित प्रॉक्सी इसके बजाय साधारण HTTP/1.1 फ़ॉरवर्डिंग स्वीकार करता है, तो Spring WebClient किसी अन्य समर्थित कनेक्टर का उपयोग कर सकता है।

Spring 6.2 के लिए Jetty 12.0.35 के क्लाइंट API और संगत Jetty Reactive Streams एकीकरण के साथ:

var jetty = new org.eclipse.jetty.client.HttpClient(
    new org.eclipse.jetty.client.transport.HttpClientTransportOverHTTP());
jetty.getProxyConfiguration().addProxy(
    new org.eclipse.jetty.client.HttpProxy("proxy.example", 8080));

var client = WebClient.builder()
    .clientConnector(new JettyClientHttpConnector(jetty))
    .build();

WebClient और JettyClientHttpConnector Spring क्लास हैं। दिए गए Jetty क्लाइंट का स्टार्टअप और शटडाउन एप्लिकेशन के सामान्य जीवनचक्र के माध्यम से प्रबंधित करें।

Jetty का HTTP/1.1 प्रॉक्सी बिना टनल के साधारण HTTP/1.1 अनुरोध फ़ॉरवर्ड कर सकता है जब लक्ष्य और क्लाइंट-प्रॉक्सी प्रोटोकॉल मेल खाते हों। इसकी requiresTunnel नीति सुरक्षित लक्ष्यों और असंगत प्रोटोकॉल पथों के लिए CONNECT का उपयोग करती है।

यह साधारण HTTPS टनल से CONNECT हटाने का तरीका नहीं है। गंतव्य का स्कीम सही रखें।

बताए गए Jetty API में addProxy का उपयोग करें। getProxies अपरिवर्तनीय सूची लौटाता है, इसलिए पुरानी getProxies().add(...) विधि इसका वर्तमान म्यूटेशन इंटरफ़ेस नहीं है।

स्वीकृत सार्वजनिक-प्रॉक्सी मार्ग पर सार्वजनिक HTTP लक्ष्यों के लिए, HTTP प्रॉक्सी सूची Jetty के प्रॉक्सी होस्ट और पोर्ट के लिए उम्मीदवार प्रदान करती है। कनेक्टर की तुलना करते समय वास्तविक प्रॉक्सी प्रतिक्रिया पढ़ें। प्रमाणीकरण, गंतव्य नीति और अनुपलब्ध लक्ष्य फ़ॉरवर्ड HTTP बनाम CONNECT चुनने से अलग रहते हैं।

संबंधित लेख