Pro blokující non-TLS AMQP připojení může RabbitConnectionFactoryBean ve Spring předat továrnu socketů s podporou SOCKS klientovi RabbitMQ Java.

Pokud je Commons Net již k dispozici, nakonfigurujte existující factory bean před inicializací:

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 aplikace. Zachovejte jeho hostitele brokera, port AMQP, účet a nastavení správy připojení Spring. Broker zůstává cílem; SocketFactory vytváří sockety, které se k němu dostanou přes SOCKS. Pro necitlivý test proti veřejnému brokerovi, kde jsou veřejní prostředníci povoleni, seznam SOCKS proxy nabízí kandidáty; sladte verzi SOCKS podporovanou runtime a ověřte přístup ke skutečnému hostiteli a portu brokera.

Továrna Commons Net vytváří nepřipojený java.net.Socket s dodaným Proxy. Blokující kód připojení RabbitMQ pak tento socket připojí svou obvyklou cestou připojení. Pouhý export HTTP_PROXY tuto továrnu socketů AMQP neposkytne.

RabbitMQ dokumentuje, že háček SocketFactory platí pro blokující I/O. Klient nakonfigurovaný pro NIO nebo jiný transport potřebuje háček podporovaný daným transportem. Pro AMQPS zachovejte vhodnou továrnu TLS socketů a ověřování cíle; nahrazení výše uvedenou jednoduchou továrnou není úplná konfigurace TLS.

Související články