Spring AMQP में गैर-TLS RabbitMQ कनेक्शन को ब्लॉक करने के लिए SOCKS
ब्लॉकिंग गैर-TLS AMQP कनेक्शन पथ के लिए RabbitConnectionFactoryBean के माध्यम से प्रॉक्सी-जागरूक SocketFactory जोड़ें।
ब्लॉकिंग, गैर-TLS AMQP कनेक्शन के लिए Spring का RabbitConnectionFactoryBean RabbitMQ Java क्लाइंट को SOCKS-जागरूक सॉकेट फ़ैक्टरी दे सकता है।
यदि Commons Net पहले से उपलब्ध है, तो आरंभ से पहले मौजूदा factory bean कॉन्फ़िगर करें:
var socksProxy = new java.net.Proxy(
java.net.Proxy.Type.SOCKS,
new java.net.InetSocketAddress("proxy.example", 1080));
rabbitFactoryBean.setSocketFactory(
new org.apache.commons.net.DefaultSocketFactory(socksProxy));
rabbitFactoryBean एप्लिकेशन का RabbitConnectionFactoryBean है। इसका broker होस्ट, AMQP पोर्ट, खाता और Spring कनेक्शन-प्रबंधन सेटअप बनाए रखें। broker ही गंतव्य रहता है; SocketFactory वे सॉकेट बनाता है जो SOCKS के माध्यम से उस तक पहुँचते हैं। सार्वजनिक broker के विरुद्ध गैर-संवेदनशील परीक्षण के लिए, जहाँ सार्वजनिक मध्यस्थ अनुमत हैं, SOCKS प्रॉक्सी सूची उम्मीदवार देती है; runtime द्वारा समर्थित SOCKS संस्करण से मिलान करें और वास्तविक broker होस्ट और पोर्ट तक पहुँच की पुष्टि करें।
Commons Net की फ़ैक्टरी दिए गए Proxy का उपयोग करके एक असंयुक्त java.net.Socket बनाती है। फिर RabbitMQ का ब्लॉकिंग कनेक्शन कोड उस सॉकेट को अपने सामान्य कनेक्शन पथ से जोड़ता है। केवल HTTP_PROXY निर्यात करना इस AMQP सॉकेट फ़ैक्टरी को प्रदान नहीं करता।
RabbitMQ दस्तावेज़ करता है कि SocketFactory हुक ब्लॉकिंग I/O पर लागू होता है। NIO या किसी अन्य ट्रांसपोर्ट के लिए कॉन्फ़िगर किए गए क्लाइंट को उस ट्रांसपोर्ट के समर्थित हुक की आवश्यकता होती है। AMQPS के लिए, उपयुक्त TLS सॉकेट फ़ैक्टरी और गंतव्य सत्यापन बनाए रखें; ऊपर दी गई सामान्य फ़ैक्टरी से इसे बदलना पूर्ण TLS कॉन्फ़िगरेशन नहीं है।