Set opp ein SOCKS5-proxy for Qpid JMS med Netty-handtakarar
Kopla til ein SOCKS5 ProxyHandler-leverandør via Qpid JMS-tilkoplingsutvidingar medan AMQPS-broker-URI-en blir halden.
Netty-transporten til Qpid JMS kan hente ein ny proxy-handtakar via ei tilkoplingsutviding:
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-typar. Proxy-handtakarane høyrer til Netty, og fabrikken og utvidingsenumen til org.apache.qpid.jms.
For ein offentleg tilgjengeleg broker på ei tillaten offentleg proxy-rute tilbyr SOCKS5-proxylista verts- og portkandidatar; stadfest at den valde noden tillèt den faktiske verten og porten til brokeren. Utvidinga returnerer ein leverandør; kvart leverandørkall opprettar ein ny handtakar. Å returnere éin fanga mutabel handtakar for fleire tilkoplingar ville bryte den eigarskapsordninga.
For SOCKS5-autentisering brukar du handtakar-overlastingsvarianten som godtek brukarnamn og passord. Hald broker-legitimasjonen på JMS-tilkoplinga og behald den ekte AMQPS-broker-URI-en og TLS-namnet.
Utvidinga støttar HTTP-, SOCKS4- og SOCKS5-proxy-handtakarane til Netty. For HTTP CONNECT må mellomleddet tillate målporten til brokeren.