Konfigurer en SOCKS5-proxy for Qpid JMS med Netty-handlere
Koble til en SOCKS5 ProxyHandler-leverandør via Qpid JMS-tilkoblingsutvidelser mens AMQPS-broker-URI-en bevares.
Qpid JMS' Netty-transport kan hente en ny proxy-handler via en tilkoblingsutvidelse:
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 og InetSocketAddress er JDK-typer. Proxy-handlerne tilhører Netty, og fabrikken og utvidelsesenumen til org.apache.qpid.jms.
For en offentlig tilgjengelig broker på en tillatt offentlig proxy-rute tilbyr SOCKS5-proxylisten verts- og portkandidater; bekreft at den valgte noden tillater brokerens faktiske vert og port. Utvidelsen returnerer en leverandør; hvert leverandørkall oppretter en ny handler. Å returnere én fanget mutabel handler for flere tilkoblinger ville bryte den eierskapsordningen.
For SOCKS5-autentisering bruker du handler-overlastingen som godtar brukernavn og passord. Hold broker-legitimasjonen på JMS-tilkoblingen og behold den ekte AMQPS-broker-URI-en og TLS-navnet.
Utvidelsen støtter Netty sine HTTP-, SOCKS4- og SOCKS5-proxy-handlere. For HTTP CONNECT må mellomleddet tillate brokerens målport.