Transport Netty v Qpid JMS může získat nový proxy handler přes rozšíření připojení:

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 a InetSocketAddress jsou typy JDK. Proxy handlery patří Netty, továrna a výčtový typ rozšíření organizaci org.apache.qpid.jms.

Pro veřejně dostupný broker na povolené veřejné proxy trase nabízí seznam proxy SOCKS5 kandidáty na hostitele a port; ověřte, že zvolený uzel povoluje skutečného hostitele a port brokeru. Rozšíření vrací poskytovatele; každé volání poskytovatele vytvoří nový handler. Vrácení jednoho zachyceného měnitelného handleru pro několik připojení by porušilo toto uspořádání vlastnictví.

Pro ověřování SOCKS5 použijte přetížení handleru přijímající uživatelské jméno a heslo. Uchovejte přihlašovací údaje brokeru na připojení JMS a zachovejte skutečné URI brokeru AMQPS a název TLS.

Rozšíření podporuje proxy handlery HTTP, SOCKS4 a SOCKS5 v Netty. U HTTP CONNECT musí zprostředkovatel povolit cílový port brokeru.

Související články