Fir eng blockéierend, Net-TLS-AMQP-Verbindung kann d'RabbitConnectionFactoryBean vu Spring eng SOCKS-bewosst Socketfabréck un de RabbitMQ-Java-Client weiderginn.

Wann Commons Net schonn verfügbar ass, konfiguréiert déi existéierend Factory-Bean virun der Initialiséierung:

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 ass d'RabbitConnectionFactoryBean vun der Applikatioun. Behält hire Broker-Host, AMQP-Port, Kont a Springs Ariichtung fir d'Verbindungsverwaltung. De Broker bleift d'Zil; d'SocketFactory erstellt d'Sockets, déi en iwwer SOCKS erreechen. Fir en onempfindlechen Test géint e ëffentleche Broker, wou ëffentlech Vermëttler erlaabt sinn, bitt d'SOCKS-Proxy-Lëscht Kandidaten; passt d'SOCKS-Versioun un, déi d'Laufzäit ënnerstëtzt, a bestätegt den Zougrëff op de richtegen Broker-Host an -Port.

D'Fabréck vu Commons Net erstellt en net verbonnenen java.net.Socket mam geliwwerten Proxy. Duerno verbënnt de blockéierende Verbindungscode vu RabbitMQ dee Socket iwwer säi normale Verbindungswee. Just HTTP_PROXY z'exportéieren stellt dës AMQP-Socketfabréck net zur Verfügung.

RabbitMQ dokumentéiert, datt de SocketFactory-Hook fir blockéierend I/O gëllt. E Client, deen fir NIO oder en aneren Transport konfiguréiert ass, brauch den ënnerstëtzten Hook vun deem Transport. Fir AMQPS behält eng passend TLS-Socketfabréck an d'Zil-Validéierung; se duerch déi einfach Fabréck uewen z'ersetzen ass keng komplett TLS-Konfiguratioun.

Ähnlech Artikelen