Налаштування проксі 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 посередник має дозволяти цільовий порт брокера.