SOCKS pro blokující non-TLS připojení RabbitMQ v Spring AMQP
Připojte SocketFactory s podporou proxy přes RabbitConnectionFactoryBean pro cestu blokujícího non-TLS AMQP připojení.
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.