SOCKS a blokkoló, nem TLS RabbitMQ-kapcsolatokhoz Spring AMQP-ben
Csatlakoztasson proxy-tudatos SocketFactory-t a RabbitConnectionFactoryBean-en keresztül a blokkoló, nem TLS AMQP-kapcsolat útvonalához.
Egy blokkoló, nem TLS AMQP-kapcsolathoz a Spring RabbitConnectionFactoryBean-je SOCKS-tudatos socket-gyárat adhat át a RabbitMQ Java-kliensnek.
Ha a Commons Net már elérhető, az inicializálás előtt konfigurálja a meglévő factory beant:
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));
A rabbitFactoryBean az alkalmazás RabbitConnectionFactoryBean-je. Tartsa meg a broker-gazdagépet, az AMQP-portot, a fiókot és a Spring kapcsolatkezelési beállítását. A broker marad a cél; a SocketFactory hozza létre azokat a socketeket, amelyek SOCKS-on keresztül elérik. Egy nyilvános broker elleni, nem érzékeny teszthez, ahol a nyilvános közvetítők engedélyezettek, a SOCKS-proxylista jelölteket kínál; igazítsa a futtatókörnyezet által támogatott SOCKS-verzióhoz, és erősítse meg a tényleges broker-gazdagép és -port elérését.
A Commons Net gyára a megadott Proxy használatával nem csatlakoztatott java.net.Socketet hoz létre. Ezután a RabbitMQ blokkoló kapcsolati kódja a szokásos kapcsolati útvonalán csatlakoztatja ezt a socketet. Az HTTP_PROXY puszta exportálása nem biztosítja ezt az AMQP socket-gyárat.
A RabbitMQ dokumentálja, hogy a SocketFactory hook a blokkoló I/O-ra vonatkozik. Az NIO-hoz vagy más átvitelhez konfigurált kliensnek az adott átvitel által támogatott hookra van szüksége. AMQPS esetén tartson meg egy megfelelő TLS socket-gyárat és célhitelesítést; a fenti egyszerű gyárral való helyettesítése nem teljes TLS-konfiguráció.