SOCKS fir blockéierend Net-TLS-RabbitMQ-Verbindungen a Spring AMQP
Verbënnt eng proxybewosst SocketFactory iwwer RabbitConnectionFactoryBean fir de blockéierenden Net-TLS-AMQP-Verbindungswee.
Fir eng blockéierend, Net-TLS-AMQP-Verbindung kann d'RabbitConnectionFactoryBean vu Spring eng SOCKS-bewosst Socketfabréck un de RabbitMQ-Java-Client weiderginn.
Wann Commons Net schonn verfügbar ass, konfiguréiert déi existéierend Factory-Bean virun der Initialiséierung:
var socksProxy = new java.net.Proxy(
java.net.Proxy.Type.SOCKS,
new java.net.InetSocketAddress("proxy.example", 1080));
rabbitFactoryBean.setSocketFactory(
new org.apache.commons.net.DefaultSocketFactory(socksProxy));
rabbitFactoryBean ass d'RabbitConnectionFactoryBean vun der Applikatioun. Behält hire Broker-Host, AMQP-Port, Kont a Springs Ariichtung fir d'Verbindungsverwaltung. De Broker bleift d'Zil; d'SocketFactory erstellt d'Sockets, déi en iwwer SOCKS erreechen. Fir en onempfindlechen Test géint e ëffentleche Broker, wou ëffentlech Vermëttler erlaabt sinn, bitt d'SOCKS-Proxy-Lëscht Kandidaten; passt d'SOCKS-Versioun un, déi d'Laufzäit ënnerstëtzt, a bestätegt den Zougrëff op de richtegen Broker-Host an -Port.
D'Fabréck vu Commons Net erstellt en net verbonnenen java.net.Socket mam geliwwerten Proxy. Duerno verbënnt de blockéierende Verbindungscode vu RabbitMQ dee Socket iwwer säi normale Verbindungswee. Just HTTP_PROXY z'exportéieren stellt dës AMQP-Socketfabréck net zur Verfügung.
RabbitMQ dokumentéiert, datt de SocketFactory-Hook fir blockéierend I/O gëllt. E Client, deen fir NIO oder en aneren Transport konfiguréiert ass, brauch den ënnerstëtzten Hook vun deem Transport. Fir AMQPS behält eng passend TLS-Socketfabréck an d'Zil-Validéierung; se duerch déi einfach Fabréck uewen z'ersetzen ass keng komplett TLS-Konfiguratioun.