SOCKS bloķējošiem ne-TLS RabbitMQ savienojumiem Spring AMQP
Pievienojiet starpniekserveri apzinošu SocketFactory caur RabbitConnectionFactoryBean bloķējošajam ne-TLS AMQP savienojuma ceļam.
Bloķējošam ne-TLS AMQP savienojumam Spring RabbitConnectionFactoryBean var nodot SOCKS apzinošu ligzdu fabriku RabbitMQ Java klientam.
Ja Commons Net jau ir pieejams, konfigurējiet esošo factory bean pirms inicializācijas:
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 ir lietojumprogrammas RabbitConnectionFactoryBean. Saglabājiet tā brokera resursdatoru, AMQP portu, kontu un Spring savienojumu pārvaldības iestatījumu. Brokeris paliek galamērķis; SocketFactory izveido ligzdas, kas to sasniedz caur SOCKS. Nejutīgam testam pret publisku brokeri, kur atļauti publiski starpnieki, SOCKS starpniekserveru saraksts piedāvā kandidātus; saskaņojiet izpildlaika atbalstīto SOCKS versiju un apstipriniet piekļuvi faktiskajam brokera resursdatoram un portam.
Commons Net fabrika izveido nesavienotu java.net.Socket, izmantojot norādīto Proxy. Pēc tam RabbitMQ bloķējošais savienojuma kods savieno šo ligzdu ar savu parasto savienojuma ceļu. Vienkārši eksportējot HTTP_PROXY, šī AMQP ligzdu fabrika netiek nodrošināta.
RabbitMQ dokumentē, ka SocketFactory āķis attiecas uz bloķējošu I/O. Klientam, kas konfigurēts NIO vai citam transportam, nepieciešams attiecīgā transporta atbalstītais āķis. AMQPS gadījumā saglabājiet piemērotu TLS ligzdu fabriku un galamērķa pārbaudi; aizstāšana ar iepriekš minēto vienkāršo fabriku nav pilnīga TLS konfigurācija.