Spring AMQP da TLS bo'lmagan RabbitMQ ulanishlarini bloklash uchun SOCKS
Bloklovchi TLS bo'lmagan AMQP ulanish yo'li uchun RabbitConnectionFactoryBean orqali proksini taniydigan SocketFactory ulang.
Bloklovchi, TLS bo'lmagan AMQP ulanishi uchun Spring ning RabbitConnectionFactoryBean i SOCKS ni taniydigan socket fabrikasini RabbitMQ Java mijoziga uzatishi mumkin.
Agar Commons Net allaqachon mavjud bo'lsa, ishga tushirishdan oldin mavjud factory bean ni sozlang:
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 ilovaning RabbitConnectionFactoryBean i. Uning broker hosti, AMQP porti, hisobi va Spring ulanishlarni boshqarish sozlamalarini saqlang. Broker manzil bo'lib qoladi; SocketFactory esa unga SOCKS orqali yetib boradigan socketlarni yaratadi. Ommaviy vositachilarga ruxsat berilgan ommaviy broker ga qarshi sezgir bo'lmagan sinov uchun SOCKS proksi ro'yxati nomzodlarni taklif qiladi; runtime qo'llab-quvvatlaydigan SOCKS versiyasini moslashtiring va haqiqiy broker hosti va portiga kirishni tasdiqlang.
Commons Net fabrikasi berilgan Proxy dan foydalanib ulanmagan java.net.Socket yaratadi. So'ngra RabbitMQ ning bloklovchi ulanish kodi o'sha socketni odatdagi ulanish yo'li bilan ulaydi. Faqat HTTP_PROXY ni eksport qilish bu AMQP socket fabrikasini ta'minlamaydi.
RabbitMQ SocketFactory ilgagi bloklovchi I/O ga tegishli ekanini hujjatlashtiradi. NIO yoki boshqa transport uchun sozlangan mijoz o'sha transport qo'llab-quvvatlaydigan ilgakka muhtoj. AMQPS uchun mos TLS socket fabrikasi va manzil tekshiruvini saqlang; uni yuqoridagi oddiy fabrika bilan almashtirish to'liq TLS sozlamasi emas.