Qpid JMS Netty-transport kan hämta en ny proxy-handler via ett anslutningstillägg:

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 och InetSocketAddress är JDK-typer. Proxy-handlerna tillhör Netty, och fabriken och tilläggets enum till org.apache.qpid.jms.

För en offentligt nåbar broker på en tillåten offentlig proxy-väg erbjuder SOCKS5-proxylistan värd- och portkandidater; bekräfta att den valda noden tillåter brokerns faktiska värd och port. Tillägget returnerar en leverantör; varje leverantörsanrop skapar en ny handler. Att returnera en enda fångad muterbar handler för flera anslutningar skulle bryta den ägarordningen.

För SOCKS5-autentisering använder du handler-överlagringen som accepterar användarnamn och lösenord. Behåll brokerns inloggningsuppgifter på JMS-anslutningen och bevara den riktiga AMQPS-broker-URI:n och TLS-namnet.

Tillägget stöder Netty HTTP-, SOCKS4- och SOCKS5-proxy-handlers. För HTTP CONNECT måste mellanhanden tillåta brokerns målport.

Relaterade artiklar