Transport Netty v Qpid JMS môže získať nový proxy handler cez rozšírenie pripojenia:

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 sú typy JDK. Proxy handlery patria Netty, továreň a enum rozšírenia organizácii org.apache.qpid.jms.

Pre verejne dostupný broker na povolenej verejnej proxy trase ponúka zoznam proxy SOCKS5 kandidátov na hostiteľa a port; overte, že zvolený uzol povoľuje skutočného hostiteľa a port brokera. Rozšírenie vracia poskytovateľa; každé volanie poskytovateľa vytvorí nový handler. Vrátenie jedného zachyteného premenlivého handlera pre viac pripojení by porušilo toto usporiadanie vlastníctva.

Na overovanie SOCKS5 použite preťaženie handlera prijímajúce používateľské meno a heslo. Uchovajte prihlasovacie údaje brokera na pripojení JMS a zachovajte skutočné URI brokera AMQPS a názov TLS.

Rozšírenie podporuje proxy handlery HTTP, SOCKS4 a SOCKS5 v Netty. Pri HTTP CONNECT musí sprostredkovateľ povoliť cieľový port brokera.

Súvisiace články