Een SOCKS5-proxy configureren voor Qpid JMS met Netty-handlers
Koppel een SOCKS5 ProxyHandler-leverancier via Qpid JMS-verbindingsuitbreidingen en behoud de AMQPS-broker-URI.
De Netty-transport van Qpid JMS kan via een verbindingsuitbreiding een nieuwe proxy-handler krijgen:
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 en InetSocketAddress zijn JDK-typen. De proxy-handlers horen bij Netty, en de factory en de uitbreidings-enum bij org.apache.qpid.jms.
Voor een publiek bereikbare broker op een toegestane openbare proxy-route biedt de SOCKS5-proxylijst host- en poortkandidaten; bevestig dat het gekozen knooppunt de werkelijke host en poort van de broker toestaat. De uitbreiding retourneert een leverancier; elke leveranciersaanroep maakt een nieuwe handler. Het retourneren van één vastgelegde veranderlijke handler voor meerdere verbindingen zou die eigendomsregeling schenden.
Gebruik voor SOCKS5-authenticatie de handler-overload die een gebruikersnaam en wachtwoord accepteert. Houd de broker-inloggegevens op de JMS-verbinding en behoud de echte AMQPS-broker-URI en de TLS-naam.
De uitbreiding ondersteunt de HTTP-, SOCKS4- en SOCKS5-proxy-handlers van Netty. Voor HTTP CONNECT moet de tussenpartij de doelpoort van de broker toestaan.