Ang Netty transport ng Qpid JMS ay makakakuha ng bagong proxy handler sa pamamagitan ng extension ng koneksyon:

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);

Ang Supplier at InetSocketAddress ay mga uri ng JDK. Ang mga proxy handler ay pag-aari ng Netty, at ang factory at extension enum ay ng org.apache.qpid.jms.

Para sa broker na naaabot ng publiko sa pinahihintulutang pampublikong ruta ng proxy, nag-aalok ang listahan ng SOCKS5 proxy ng mga kandidatong host at port; tiyakin na pinapayagan ng napiling node ang aktwal na host at port ng broker. Nagbabalik ang extension ng provider; bawat tawag ng provider ay gumagawa ng bagong handler. Ang pagbabalik ng isang nakuhang nababagong handler para sa maraming koneksyon ay lalabag sa kaayusang iyon ng pagmamay-ari.

Para sa pagpapatotoo ng SOCKS5, gamitin ang overload ng handler na tumatanggap ng username at password. Panatilihin ang mga kredensyal ng broker sa koneksyon ng JMS at panatilihin ang tunay na AMQPS broker URI at pangalan ng TLS.

Sinusuportahan ng extension ang HTTP, SOCKS4 at SOCKS5 na proxy handler ng Netty. Para sa HTTP CONNECT, dapat payagan ng tagapamagitan ang target na port ng broker.

Kaugnay na mga artikulo