SOCKS՝ Spring AMQP-ում TLS-չուն RabbitMQ արգելափակող միացումների համար
Միացրեք պրոքսիին տեղյակ SocketFactory՝ RabbitConnectionFactoryBean-ի միջոցով արգելափակող ոչ TLS AMQP միացման ուղու համար։
Արգելափակող, ոչ TLS AMQP միացման համար Spring-ի RabbitConnectionFactoryBean-ը կարող է SOCKS-ին տեղյակ socket ֆաբրիկա փոխանցել 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-ն ստեղծում է այն socket-ները, որոնք հասնում են դրան SOCKS-ի միջոցով։ Հանրային broker-ի դեմ ոչ զգայուն փորձարկման համար, որտեղ հանրային միջնորդները թույլատրված են, SOCKS պրոքսիների ցանկը առաջարկում է թեկնածուներ. համապատասխանեցրեք runtime-ի աջակցվող SOCKS տարբերակին և հաստատեք հասանելիությունը փաստացի broker հոսթին և պորտին։
Commons Net-ի ֆաբրիկան ստեղծում է չմիացված java.net.Socket՝ օգտագործելով տրված Proxy-ն։ Այնուհետև RabbitMQ-ի արգելափակող միացման կոդը միացնում է այդ socket-ը իր սովորական միացման ուղով։ Միայն HTTP_PROXY արտահանելը չի ապահովում այս AMQP socket ֆաբրիկան։
RabbitMQ-ն փաստաթղթավորում է, որ SocketFactory կեռիկը կիրառվում է արգելափակող I/O-ի համար։ NIO-ի կամ այլ տրանսպորտի համար կարգավորված հաճախորդին անհրաժեշտ է այդ տրանսպորտի աջակցվող կեռիկը։ AMQPS-ի համար պահպանեք համապատասխան TLS socket ֆաբրիկա և նպատակակետի ստուգում. վերևի սովորական ֆաբրիկայով փոխարինելը լրիվ TLS կարգավորում չէ։