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