Configura un proxy SOCKS5 per a Qpid JMS amb gestors de Netty
Adjunteu un proveïdor de ProxyHandler SOCKS5 mitjançant extensions de connexió de Qpid JMS tot conservant l'URI del broker AMQPS.
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.