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ó.

Kapcsolódó cikkek