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.

Povezani članci