Për një lidhje AMQP bllokuese dhe jo-TLS, RabbitConnectionFactoryBean e Spring mund t'i kalojë një fabrikë socketsh të vetëdijshme për SOCKS klientit Java të RabbitMQ.

Nëse Commons Net është tashmë i disponueshëm, konfiguroni bean-in ekzistues të fabrikës përpara inicializimit:

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 është RabbitConnectionFactoryBean e aplikacionit. Mbani hostin e brokerit, portën AMQP, llogarinë dhe konfigurimin e menaxhimit të lidhjeve të Spring. Brokeri mbetet destinacioni; SocketFactory krijon sockets që e arrijnë atë përmes SOCKS. Për një test jo të ndjeshëm ndaj një brokeri publik ku lejohen ndërmjetësit publikë, lista e proxy-ve SOCKS ofron kandidatë; përputhni versionin SOCKS të mbështetur nga runtime dhe konfirmoni aksesin në hostin dhe portën reale të brokerit.

Fabrika e Commons Net krijon një java.net.Socket të palidhur duke përdorur Proxy-n e dhënë. Më pas kodi bllokues i lidhjes së RabbitMQ lidh atë socket përmes rrugës së tij normale të lidhjes. Vetëm eksportimi i HTTP_PROXY nuk e siguron këtë fabrikë socketsh AMQP.

RabbitMQ dokumenton se grep SocketFactory zbatohet për I/O bllokuese. Një klient i konfiguruar për NIO ose një transport tjetër ka nevojë për grepin e mbështetur nga ai transport. Për AMQPS, mbani një fabrikë socketsh TLS të përshtatshme dhe verifikimin e destinacionit; zëvendësimi i saj me fabrikën e thjeshtë më sipër nuk është një konfigurim i plotë TLS.

Artikuj të ngjashëm