El transport Netty de Qpid JMS pot obtenir un gestor de proxy nou mitjançant una extensió de connexió:

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 són tipus del JDK. Els gestors de proxy pertanyen a Netty, i la fàbrica i l'enumeració d'extensió a org.apache.qpid.jms.

Per a un broker accessible públicament en una ruta de proxy pública permesa, la llista de proxys SOCKS5 ofereix candidats d'amfitrió i port; confirmeu que el node triat permet l'amfitrió i el port reals del broker. L'extensió retorna un proveïdor; cada crida al proveïdor crea un gestor nou. Retornar un sol gestor mutable capturat per a diverses connexions vulneraria aquesta disposició de propietat.

Per a l'autenticació SOCKS5, feu servir la sobrecàrrega del gestor que accepta nom d'usuari i contrasenya. Manteniu les credencials del broker a la connexió JMS i conserveu l'URI real del broker AMQPS i el nom TLS.

L'extensió admet els gestors de proxy HTTP, SOCKS4 i SOCKS5 de Netty. Per a HTTP CONNECT, l'intermediari ha de permetre el port de destinació del broker.

Articles relacionats