Vir 'n blokkerende, nie-TLS AMQP-verbinding kan Spring se RabbitConnectionFactoryBean 'n SOCKS-bewuste socketfabriek aan die RabbitMQ Java-kliënt deurgee.

As Commons Net reeds beskikbaar is, konfigureer die bestaande fabriekbean voor inisialisering:

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 is die toepassing se RabbitConnectionFactoryBean. Behou sy broker-gasheer, AMQP-poort, rekening en Spring-verbindingsbestuur-opstelling. Die broker bly die bestemming; die SocketFactory skep die sokkels wat dit deur SOCKS bereik. Vir 'n nie-sensitiewe toets teen 'n publieke broker waar publieke tussengangers toegelaat word, bied die SOCKS-proxylys kandidate; pas by die SOCKS-weergawe wat die looptyd ondersteun en bevestig toegang tot die werklike broker-gasheer en -poort.

Commons Net se fabriek skep 'n onverbinde java.net.Socket met die verskafde Proxy. RabbitMQ se blokkerende verbindingskode verbind dan daardie sokkel via sy normale verbindingsroete. Om bloot HTTP_PROXY te eksporteer voorsien nie hierdie AMQP-socketfabriek nie.

RabbitMQ dokumenteer dat die SocketFactory-haak op blokkerende I/O van toepassing is. 'n Kliënt wat vir NIO of 'n ander transport opgestel is, benodig daardie transport se ondersteunde haak. Vir AMQPS, behou 'n geskikte TLS-socketfabriek en bestemmingsverifikasie; om dit met die gewone fabriek hierbo te vervang is nie 'n volledige TLS-opstelling nie.

Verwante artikels