በSpring AMQP ውስጥ የTLS-ያልሆኑ የRabbitMQ ግንኙነቶችን ለመያዝ SOCKS
በRabbitConnectionFactoryBean በኩል ፕሮክሲን የሚያውቅ SocketFactory ለTLS-ያልሆነው የAMQP ግንኙነት መንገድ አያዝ።
ለማያቋርጥ፣ TLS-ያልሆነ AMQP ግንኙነት፣ የSpring RabbitConnectionFactoryBean የSOCKS ንቃተ-ህሊና ያለው socket factory ለRabbitMQ Java client ማስተላለፍ ይችላል።
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 host፣ AMQP port፣ account እና የSpring connection-management ውቅርን አቆይ። broker መዳረሻው ሆኖ ይቆያል፤ SocketFactory ደግሞ በSOCKS በኩል ወደእሱ የሚደርሱትን socketዎች ይፈጥራል። የሕዝብ መካከለኛዎች በሚፈቀዱበት የሕዝብ broker ላይ ለሚደረግ ስሜታዊ-ያልሆነ ሙከራ፣ የSOCKS proxy ዝርዝር እጩዎችን ያቀርባል፤ ከruntime የሚደገፈውን የSOCKS ሥሪት አዛምድ እና ወደ ትክክለኛው broker host እና port መዳረሻን አረጋግጥ።
የCommons Net factory የቀረበውን Proxy በመጠቀም ያልተገናኘ java.net.Socket ይፈጥራል። የRabbitMQ ማያቋርጥ ግንኙነት ኮድ በመደበኛው የግንኙነት መንገዱ ያንን socket ያገናኛል። HTTP_PROXY መላኩ ብቻ ይህን AMQP socket factory አያቀርብም።
RabbitMQ የSocketFactory ማጠርያው ለማያቋርጥ I/O እንደሚተገበር ይመዘግባል። ለNIO ወይም ለሌላ transport የተዘጋጀ client የዚያ transport የሚደገፈውን ማጠርያ ይፈልጋል። ለAMQPS፣ ተስማሚ የTLS socket factory እና የመዳረሻ ማረጋገጫ አቆይ፤ በላይ በተጠቀሰው ቀላል factory መተካቱ ሙሉ የTLS ውቅር አይደለም።