For ei blokkerande, ikkje-TLS AMQP-tilkopling kan RabbitConnectionFactoryBean i Spring senda ein SOCKS-viten socketfabrikk til RabbitMQ Java-klienten.

Viss Commons Net alt er tilgjengeleg, konfigurer den eksisterande factory beanen før initiering:

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 er RabbitConnectionFactoryBean til applikasjonen. Hald på brokerverten, AMQP-porten, kontoen og oppsettet for tilkoplingsstyring i Spring. Brokeren blir verande destinasjonen; SocketFactory lagar socklane som når han gjennom SOCKS. For ein ikkje-sensitiv test mot ein offentleg broker der offentlege mellomledd er tillatne, tilbyr SOCKS-proxylista kandidatar; tilpass SOCKS-versjonen som køyretida støttar, og stadfest tilgang til den faktiske brokerverten og -porten.

Fabrikken til Commons Net lagar ein uforbunden java.net.Socket ved hjelp av Proxyen som er gjeven. Deretter koplar den blokkerande tilkoplingskoden i RabbitMQ den sockelen via sin vanlege tilkoplingsveg. Berre å eksportera HTTP_PROXY gjev ikkje denne AMQP-socketfabrikken.

RabbitMQ dokumenterer at SocketFactory-kroken gjeld for blokkerande I/O. Ein klient som er konfigurert for NIO eller ein annan transport treng kroken som den transporten støttar. For AMQPS, hald på ein høveleg TLS-socketfabrikk og stadfesting av destinasjonen; å erstatta han med den enkle fabrikken ovanfor er ikkje ein fullstendig TLS-konfigurasjon.

Relaterte artiklar