Konfigurer en SOCKS5-proxy til Qpid JMS med Netty-handlere
Tilslut en SOCKS5 ProxyHandler-leverandør via Qpid JMS-forbindelsesudvidelser, mens AMQPS-broker-URI'en bevares.
Qpid JMS' Netty-transport kan hente en ny proxy-handler via en forbindelsesudvidelse:
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 hører til Netty, og fabrikken og udvidelsesenum'en til org.apache.qpid.jms.
For en offentligt tilgængelig broker på en tilladt offentlig proxy-rute tilbyder SOCKS5-proxylisten værts- og portkandidater; bekræft, at den valgte node tillader brokerens faktiske vært og port. Udvidelsen returnerer en leverandør; hvert leverandørkald opretter en ny handler. At returnere én fastholdt mutabel handler til flere forbindelser ville bryde den ejerskabsordning.
Til SOCKS5-godkendelse skal du bruge handler-overbelastningen, der accepterer brugernavn og adgangskode. Behold broker-legitimationsoplysninger på JMS-forbindelsen, og bevar den rigtige AMQPS-broker-URI og TLS-navnet.
Udvidelsen understøtter Netty's HTTP-, SOCKS4- og SOCKS5-proxy-handlere. Til HTTP CONNECT skal mellemleddet tillade brokerens målport.