SOCKS foar blokkearjende non-TLS RabbitMQ-ferbinings yn Spring AMQP
Koppelje in proxybewuste SocketFactory fia RabbitConnectionFactoryBean foar it blokkearjende non-TLS AMQP-ferbiningspaad.
Foar in blokkearjende, non-TLS AMQP-ferbining kin de RabbitConnectionFactoryBean fan Spring in SOCKS-bewuste socketfabryk trochjaan oan de RabbitMQ Java-klient.
As Commons Net al beskikber is, konfigurearje dan de besteande factory bean foar initialisaasje:
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 is de RabbitConnectionFactoryBean fan 'e applikaasje. Behâld syn broker-host, AMQP-poarte, akkount en de Spring-ynstelling foar ferbiningsbehear. De broker bliuwt de bestimming; de SocketFactory makket de sockets dy't him fia SOCKS berikke. Foar in net-gefoelige test tsjin in iepenbiere broker wêr't iepenbiere tuskenpersoanen tastien binne, biedt de SOCKS-proxylist kandidaten; pas de SOCKS-ferzje oan dy't de runtime stipet en befestigje tagong ta de eigentlike broker-host en -poarte.
De fabryk fan Commons Net makket in net-ferbûne java.net.Socket mei de levere Proxy. Dêrnei ferbynt de blokkearjende ferbiningskoade fan RabbitMQ dy socket fia syn gewoane ferbiningspaad. Allinnich HTTP_PROXY eksportearje leveret dit AMQP-socketfabryk net.
RabbitMQ dokumintearret dat de SocketFactory-heak jildt foar blokkearjende I/O. In klient dy't konfigurearre is foar NIO of in oare transport hat de troch dat transport stipe heak nedich. Foar AMQPS, behâld in geskikt TLS-socketfabryk en bestimmingsferifikaasje; it ferfangen troch it gewoane fabryk hjirboppe is gjin folsleine TLS-konfiguraasje.