Kwa muunganisho wa AMQP unaozuia na usio wa TLS, RabbitConnectionFactoryBean ya Spring inaweza kupitisha kiwanda cha soketi kinachofahamu SOCKS kwa mteja wa RabbitMQ Java.

Ikiwa Commons Net tayari inapatikana, sanidi factory bean iliyopo kabla ya uanzishaji:

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 ni RabbitConnectionFactoryBean ya programu. Hifadhi mwenyeji wa broker, lango la AMQP, akaunti na mipangilio ya usimamizi wa miunganisho ya Spring. Broker hubaki kuwa lengwa; SocketFactory huunda soketi zinazoifikia kupitia SOCKS. Kwa jaribio lisilo nyeti dhidi ya broker wa umma ambapo waamuzi wa umma wanaruhusiwa, orodha ya proksi za SOCKS inatoa watahiniwa; linganisha toleo la SOCKS linaloungwa mkono na runtime na uthibitishe ufikiaji wa mwenyeji na lango halisi la broker.

Kiwanda cha Commons Net huunda java.net.Socket isiyounganishwa kwa kutumia Proxy iliyotolewa. Kisha msimbo wa muunganisho unaozuia wa RabbitMQ huunganisha soketi hiyo kupitia njia yake ya kawaida ya muunganisho. Kuhamisha HTTP_PROXY pekee hakutozi kiwanda hiki cha soketi cha AMQP.

RabbitMQ inaandika kwamba ndoano ya SocketFactory inatumika kwa I/O inayozuia. Mteja aliyesanidiwa kwa NIO au usafirishaji mwingine anahitaji ndoano inayoungwa mkono na usafirishaji huo. Kwa AMQPS, hifadhi kiwanda cha soketi cha TLS kinachofaa na uthibitishaji wa lengo; kuibadilisha na kiwanda rahisi hapo juu si usanidi kamili wa TLS.

Makala zinazohusiana