إعداد وكيل SOCKS5 لـ Qpid JMS باستخدام معالجات Netty
أرفق موفّر ProxyHandler لـ SOCKS5 عبر امتدادات اتصال Qpid JMS مع الحفاظ على عنوان URI لوسيط AMQPS.
يمكن لنقل Netty في Qpid JMS الحصول على معالج وكيل جديد عبر امتداد الاتصال:
Supplier<ProxyHandler> handlers = () ->
new Socks5ProxyHandler(
new InetSocketAddress("proxy.example", 1080));
JmsConnectionFactory factory = new JmsConnectionFactory(
"amqps://broker.example:5671");
factory.setExtension(
JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(),
(connection, remote) -> handlers);Supplier وInetSocketAddress نوعان من JDK. معالجات الوكيل تنتمي إلى Netty، أما المصنع وتعداد الامتداد فينتميان إلى org.apache.qpid.jms.
بالنسبة إلى وسيط يمكن الوصول إليه علنًا عبر مسار وكيل عام مسموح، تقدّم قائمة وكلاء SOCKS5 مرشّحات للمضيف والمنفذ؛ تحقّق من أن العقدة المختارة تسمح بمضيف الوسيط ومنفذه الفعليين. يعيد الامتداد موفّرًا؛ وكل نداء للموفّر ينشئ معالجًا جديدًا. إعادة معالج متغير واحد محتفظ به لعدة اتصالات تخلّ بترتيب الملكية هذا.
لمصادقة SOCKS5، استخدم الحمولة الزائدة للمعالج التي تقبل اسم المستخدم وكلمة المرور. أبقِ بيانات اعتماد الوسيط على اتصال JMS واحتفظ بعنوان URI الفعلي لوسيط AMQPS واسم TLS.
يدعم الامتداد معالجات وكيل HTTP وSOCKS4 وSOCKS5 في Netty. أما HTTP CONNECT فيجب أن يسمح الوسيط فيه بمنفذ هدف الوسيط.