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.

Artigos relacionados