Konfigurowanie serwera proxy SOCKS5 dla Qpid JMS z handlerami Netty
Podłącz dostawcę ProxyHandler SOCKS5 przez rozszerzenia połączenia Qpid JMS, zachowując URI brokera AMQPS.
Transport Netty w Qpid JMS może uzyskać nowy handler proxy przez rozszerzenie połączenia:
Supplier<ProxyHandler> handlers = () ->
new Socks5ProxyHandler(
new InetSocketAddress("proxy.example", 1080));
JmsConnectionFactory factory = new JmsConnectionFactory(
"amqps://broker.example:5671");
factory.setExtension(
JmsConnectionExtensions.PROXY_HANDLER_SUPPLIER.toString(),
(connection, remote) -> handlers);Supplier i InetSocketAddress to typy JDK. Handlery proxy należą do Netty, a fabryka i enum rozszerzenia do org.apache.qpid.jms.
Dla publicznie osiągalnego brokera na dozwolonej publicznej trasie proxy lista proxy SOCKS5 oferuje kandydatów hosta i portu; potwierdź, że wybrany węzeł zezwala na rzeczywisty host i port brokera. Rozszerzenie zwraca dostawcę; każde wywołanie dostawcy tworzy nowy handler. Zwrócenie jednego przechwyconego zmiennego handlera dla wielu połączeń naruszyłoby ten układ własności.
Do uwierzytelniania SOCKS5 użyj przeciążenia handlera przyjmującego nazwę użytkownika i hasło. Trzymaj dane logowania brokera na połączeniu JMS i zachowaj rzeczywisty URI brokera AMQPS oraz nazwę TLS.
Rozszerzenie obsługuje handlery proxy HTTP, SOCKS4 i SOCKS5 w Netty. W przypadku HTTP CONNECT pośrednik musi zezwalać na docelowy port brokera.