Pre blokujúce non-TLS AMQP pripojenie môže RabbitConnectionFactoryBean v Spring odovzdať továreň socketov s podporou SOCKS klientovi RabbitMQ Java.

Ak je Commons Net už dostupný, nakonfigurujte existujúci factory bean pred inicializáciou:

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 je RabbitConnectionFactoryBean aplikácie. Zachovajte jeho hostiteľa brokera, port AMQP, účet a nastavenie správy pripojení Spring. Broker zostáva cieľom; SocketFactory vytvára sockety, ktoré sa k nemu dostanú cez SOCKS. Pre necitlivý test proti verejnému brokerovi, kde sú verejní sprostredkovatelia povolení, zoznam SOCKS proxy ponúka kandidátov; zlaďte verziu SOCKS podporovanú runtime a overte prístup k skutočnému hostiteľovi a portu brokera.

Továreň Commons Net vytvára nepripojený java.net.Socket pomocou dodaného Proxy. Blokujúci kód pripojenia RabbitMQ potom tento socket pripojí svojou obvyklou cestou pripojenia. Samotný export HTTP_PROXY túto továreň socketov AMQP neposkytuje.

RabbitMQ dokumentuje, že háčik SocketFactory platí pre blokujúci I/O. Klient nakonfigurovaný pre NIO alebo iný transport potrebuje háčik podporovaný daným transportom. Pre AMQPS zachovajte vhodnú továreň TLS socketov a overenie cieľa; nahradenie vyššie uvedenou jednoduchou továreňou nie je úplná konfigurácia TLS.

Súvisiace články