SOCKS estäville ei-TLS RabbitMQ-yhteyksille Spring AMQP:ssä
Liitä välityspalvelintietoinen SocketFactory RabbitConnectionFactoryBeanin kautta estävälle ei-TLS AMQP -yhteyspolulle.
Estävälle, ei-TLS AMQP -yhteydelle Springin RabbitConnectionFactoryBean voi välittää SOCKS-tietoisen socket-tehtaan RabbitMQ Java -asiakkaalle.
Jos Commons Net on jo saatavilla, määritä olemassa oleva factory bean ennen alustusta:
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 on sovelluksen RabbitConnectionFactoryBean. Säilytä sen broker-isäntä, AMQP-portti, tili ja Springin yhteydenhallinnan asetukset. Broker pysyy kohteena; SocketFactory luo socketit, jotka saavuttavat sen SOCKSin kautta. Ei-arkaluontoiseen testiin julkista brokeria vastaan, jossa julkiset välittäjät ovat sallittuja, SOCKS-välityspalvelinluettelo tarjoaa ehdokkaita; sovita ajonaikaisen tuettu SOCKS-versio ja vahvista pääsy todelliseen broker-isäntään ja -porttiin.
Commons Netin tehdas luo yhdistämättömän java.net.Socketin annettua Proxyä käyttäen. RabbitMQ:n estävä yhteyskoodi yhdistää sitten kyseisen socketin tavallisella yhteyspolullaan. Pelkkä HTTP_PROXY:n vienti ei tarjoa tätä AMQP-socket-tehdasta.
RabbitMQ dokumentoi, että SocketFactory-koukku koskee estävää I/O:ta. NIO:lle tai muulle kuljetukselle määritetty asiakas tarvitsee kyseisen kuljetuksen tukeman koukun. AMQPS:lle säilytä sopiva TLS-socket-tehdas ja kohteen varmennus; sen korvaaminen yllä olevalla yksinkertaisella tehtaalla ei ole täydellinen TLS-määritys.