Spring AMQP मा TLS नभएका RabbitMQ जडानहरू अवरुद्ध गर्न SOCKS
अवरोध गर्ने TLS नभएको AMQP जडान मार्गका लागि RabbitConnectionFactoryBean मार्फत प्रोक्सी-सचेत SocketFactory जोड्नुहोस्।
अवरोध गर्ने, TLS नभएको AMQP जडानका लागि Spring को RabbitConnectionFactoryBean ले SOCKS-सचेत सकेट फ्याक्टरी RabbitMQ Java क्लाइन्टलाई दिन सक्छ।
यदि 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 कन्फिगरेसन होइन।