لایه انتقال 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، واسطه باید درگاه مقصد کارگزار را مجاز کند.

مقالات مرتبط