Configurar un proxy SOCKS5 para Qpid JMS con xestores de Netty
Anexe un provedor de ProxyHandler SOCKS5 mediante extensións de conexión de Qpid JMS conservando o URI do broker AMQPS.
O transporte Netty de Qpid JMS pode obter un xestor de proxy novo mediante unha extensión de conexión:
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 e InetSocketAddress son tipos do JDK. Os xestores de proxy pertencen a Netty, e a fábrica e a enumeración de extensión a org.apache.qpid.jms.
Para un broker accesible publicamente nunha ruta de proxy pública permitida, a lista de proxies SOCKS5 ofrece candidatos de host e porto; confirme que o nodo escollido permite o host e o porto reais do broker. A extensión devolve un provedor; cada chamada ao provedor crea un xestor novo. Devolver un único xestor mutable capturado para varias conexións incumpriría esa disposición de propiedade.
Para a autenticación SOCKS5, use a sobrecarga do xestor que acepta nome de usuario e contrasinal. Manteña as credenciais do broker na conexión JMS e conserve o URI real do broker AMQPS e o nome TLS.
A extensión admite os xestores de proxy HTTP, SOCKS4 e SOCKS5 de Netty. Para HTTP CONNECT, o intermediario debe permitir o porto de destino do broker.