Configurarea unui proxy SOCKS5 pentru Qpid JMS cu handler-e Netty
Atașați un furnizor ProxyHandler SOCKS5 prin extensiile de conexiune Qpid JMS, păstrând URI-ul brokerului AMQPS.
Transportul Netty al Qpid JMS poate obține un handler de proxy nou printr-o extensie de conexiune:
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 și InetSocketAddress sunt tipuri JDK. Handler-ele de proxy aparțin Netty, iar fabrica și enum-ul extensiei org.apache.qpid.jms.
Pentru un broker accesibil public pe o rută de proxy publică permisă, lista de proxy SOCKS5 oferă candidați de gazdă și port; confirmați că nodul ales permite gazda și portul reale ale brokerului. Extensia returnează un furnizor; fiecare apel al furnizorului creează un handler nou. Returnarea unui singur handler mutabil capturat pentru mai multe conexiuni ar încălca această regulă de proprietate.
Pentru autentificarea SOCKS5, folosiți supraîncărcarea handler-ului care acceptă nume de utilizator și parolă. Păstrați credențialele brokerului pe conexiunea JMS și mențineți URI-ul real al brokerului AMQPS și numele TLS.
Extensia acceptă handler-ele de proxy HTTP, SOCKS4 și SOCKS5 ale Netty. Pentru HTTP CONNECT, intermediarul trebuie să permită portul țintă al brokerului.