SOCKS za blokirajuće non-TLS RabbitMQ veze u Spring AMQP-u
Priključite SocketFactory svjestan proxyja kroz RabbitConnectionFactoryBean za putanju blokirajuće non-TLS AMQP veze.
Za blokirajuću non-TLS AMQP vezu, Springov RabbitConnectionFactoryBean može predati tvornicu soketa svjesnu SOCKS-a RabbitMQ Java klijentu.
Ako je Commons Net već dostupan, konfigurirajte postojeći factory bean prije inicijalizacije:
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 aplikacije. Zadržite njegov broker host, AMQP port, račun i Spring postavke upravljanja vezama. Broker ostaje odredište; SocketFactory stvara sokete koji do njega dolaze kroz SOCKS. Za neosjetljiv test prema javnom brokeru gdje su javni posrednici dopušteni, popis SOCKS proxyja nudi kandidate; uskladite verziju SOCKS-a koju runtime podržava i potvrdite pristup stvarnom broker hostu i portu.
Tvornica Commons Net stvara nepovezani java.net.Socket koristeći dostavljeni Proxy. RabbitMQ-ov blokirajući kod veze zatim povezuje taj socket svojim uobičajenim putem veze. Samo izvoz HTTP_PROXY ne pruža ovu AMQP tvornicu soketa.
RabbitMQ dokumentira da se SocketFactory kuka primjenjuje na blokirajući I/O. Klijent konfiguriran za NIO ili drugi transport treba kuku koju taj transport podržava. Za AMQPS zadržite odgovarajuću TLS tvornicu soketa i provjeru odredišta; zamjena gornjom običnom tvornicom nije potpuna TLS konfiguracija.