Qpid JMS का Netty ट्रांसपोर्ट कनेक्शन एक्सटेंशन के ज़रिए नया प्रॉक्सी हैंडलर प्राप्त कर सकता है:

Supplier<ProxyHandler> handlers = () ->
    new Socks5ProxyHandler(
        new InetSocketAddress("proxy.example", 1080));

JmsConnectionFactory factory = new JmsConnectionFactory(
    "amqps://broker.example:5671");
factory.setExtension(
    JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(),
    (connection, remote) -> handlers);

Supplier और InetSocketAddress JDK प्रकार हैं। प्रॉक्सी हैंडलर Netty के हैं, और फ़ैक्टरी तथा एक्सटेंशन एनम org.apache.qpid.jms के हैं।

अनुमत सार्वजनिक प्रॉक्सी मार्ग पर सार्वजनिक रूप से सुलभ ब्रोकर के लिए SOCKS5 प्रॉक्सी सूची होस्ट और पोर्ट के उम्मीदवार देती है; पुष्टि करें कि चुना गया नोड ब्रोकर के वास्तविक होस्ट और पोर्ट की अनुमति देता है। एक्सटेंशन आपूर्तिकर्ता लौटाता है; आपूर्तिकर्ता का हर कॉल नया हैंडलर बनाता है। कई कनेक्शन के लिए एक ही पकड़ा गया परिवर्तनीय हैंडलर लौटाना उस स्वामित्व व्यवस्था का उल्लंघन होगा।

SOCKS5 प्रमाणीकरण के लिए उपयोगकर्ता नाम और पासवर्ड स्वीकार करने वाला हैंडलर ओवरलोड उपयोग करें। ब्रोकर क्रेडेंशियल JMS कनेक्शन पर रखें और वास्तविक AMQPS ब्रोकर URI तथा TLS नाम बनाए रखें।

एक्सटेंशन Netty के HTTP, SOCKS4 और SOCKS5 प्रॉक्सी हैंडलर का समर्थन करता है। HTTP CONNECT के लिए मध्यस्थ को ब्रोकर का लक्ष्य पोर्ट अनुमत करना चाहिए।

संबंधित लेख