Por blokanta, ne-TLS AMQP-konekto, la RabbitConnectionFactoryBean de Spring povas transdoni SOCKS-konscian soketfabrikon al la RabbitMQ Java-kliento.

Se Commons Net jam disponeblas, agordu la ekzistantan fabrikbean antaŭ pravalortigo:

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 estas la RabbitConnectionFactoryBean de la aplikaĵo. Konservu ĝian brokan gastiganton, AMQP-pordon, konton kaj la agordon de Spring pri konekta administrado. La broko restas la celo; la SocketFactory kreas la soketojn, kiuj atingas ĝin per SOCKS. Por nesentema testo kontraŭ publika broko, kie publikaj perantoj permesatas, la listo de SOCKS-proksoj proponas kandidatojn; agordu la SOCKS-version subtenatan de la rulmedio kaj konfirmu aliron al la reala broka gastiganto kaj pordo.

La fabriko de Commons Net kreas nekonektitan java.net.Socket per la donita Proxy. La blokanta konekta kodo de RabbitMQ poste konektas tiun soketon per sia normala konekta vojo. Nur eksporti HTTP_PROXY ne provizas ĉi tiun AMQP-soketfabrikon.

RabbitMQ dokumentas, ke la hoko SocketFactory validas por blokanta enigo/eligo. Kliento agordita por NIO aŭ alia transporto bezonas la hokon subtenatan de tiu transporto. Por AMQPS, konservu taŭgan TLS-soketfabrikon kaj celkontroladon; anstataŭigi ĝin per la supra simpla fabriko ne estas kompleta TLS-agordo.

Rilataj artikoloj