Для блакавальнага не-TLS AMQP-злучэння RabbitConnectionFactoryBean у Spring можа перадаць фабрыку сокетаў з падтрымкай SOCKS кліенту RabbitMQ Java.

Калі Commons Net ужо даступны, наладзьце існуючы бін фабрыкі перад ініцыялізацыяй:

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 — гэта RabbitConnectionFactoryBean праграмы. Захавайце яго хост брокера, порт AMQP, уліковы запіс і налады кіравання злучэннямі Spring. Брокер застаецца пунктам прызначэння; SocketFactory стварае сокеты, якія дасягаюць яго праз SOCKS. Для неадчувальнага тэсту супраць публічнага брокера, дзе публічныя пасярэднікі дазволеныя, спіс SOCKS-проксі прапануе кандыдатаў; падбярыце версію SOCKS, якую падтрымлівае асяроддзе выканання, і пацвердзіце доступ да фактычнага хоста і порта брокера.

Фабрыка Commons Net стварае нязлучаны java.net.Socket з дадзеным Proxy. Затым блакавальны код злучэння RabbitMQ злучае гэты сокет сваім звычайным шляхам злучэння. Проста экспарт HTTP_PROXY не дае гэтай фабрыкі сокетаў AMQP.

RabbitMQ дакументуе, што хук SocketFactory датычыцца блакавалага ўводу-вываду. Кліент, наладжаны на NIO або іншы транспарт, патрабуе адпаведнага хука гэтага транспарту. Для AMQPS захавайце прыдатную фабрыку TLS-сокетаў і праверку пункта прызначэння; замена яе на звычайную фабрыку вышэй не з'яўляецца поўнай наладай TLS.

Падобныя артыкулы