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 კონფიგურაცია არ არის.