Spring AMQP ішінде TLS емес RabbitMQ қосылымдарын блоктау үшін SOCKS
Блоктайтын TLS емес AMQP қосылым жолы үшін RabbitConnectionFactoryBean арқылы проксиді танитын SocketFactory қосыңыз.
Блоктайтын, TLS емес AMQP қосылымы үшін Spring-нің RabbitConnectionFactoryBean-ы SOCKS-ті танитын socket фабрикасын RabbitMQ Java клиентіне бере алады.
Егер Commons Net бұрыннан қолжетімді болса, инициализация алдында бар factory bean-ды конфигурациялаңыз:
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-ы. Оның broker хостын, AMQP портын, тіркелгісін және Spring қосылымдарын басқару конфигурациясын сақтаңыз. Broker межелі орын болып қалады; SocketFactory оған SOCKS арқылы жететін socket-терді жасайды. Ашық делдалдарға рұқсат етілген ашық brokerге қарсы сезімтал емес тест үшін SOCKS проксилерінің тізімі үміткерлерді ұсынады; runtime қолдайтын SOCKS нұсқасын сәйкестендіріп, нақты broker хост пен портқа қатынауды растаңыз.
Commons Net фабрикасы берілген Proxy арқылы қосылмаған java.net.Socket жасайды. Содан кейін RabbitMQ-ның блоктайтын қосылым коды сол socket-ті әдеттегі қосылым жолы арқылы қосады. Тек HTTP_PROXY экспорттау бұл AMQP socket фабрикасын бермейді.
RabbitMQ SocketFactory ілгегі блоктайтын I/O-ға қолданылатынын құжаттайды. NIO немесе басқа транспортқа конфигурацияланған клиентке сол транспорт қолдайтын ілгек қажет. AMQPS үшін тиісті TLS socket фабрикасын және межелі орынды тексеруді сақтаңыз; оны жоғарыдағы қарапайым фабрикамен ауыстыру толық TLS конфигурациясы емес.