Netty-transporten til Qpid JMS kan hente ein ny proxy-handtakar via ei tilkoplingsutviding:

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 og InetSocketAddress er JDK-typar. Proxy-handtakarane høyrer til Netty, og fabrikken og utvidingsenumen til org.apache.qpid.jms.

For ein offentleg tilgjengeleg broker på ei tillaten offentleg proxy-rute tilbyr SOCKS5-proxylista verts- og portkandidatar; stadfest at den valde noden tillèt den faktiske verten og porten til brokeren. Utvidinga returnerer ein leverandør; kvart leverandørkall opprettar ein ny handtakar. Å returnere éin fanga mutabel handtakar for fleire tilkoplingar ville bryte den eigarskapsordninga.

For SOCKS5-autentisering brukar du handtakar-overlastingsvarianten som godtek brukarnamn og passord. Hald broker-legitimasjonen på JMS-tilkoplinga og behald den ekte AMQPS-broker-URI-en og TLS-namnet.

Utvidinga støttar HTTP-, SOCKS4- og SOCKS5-proxy-handtakarane til Netty. For HTTP CONNECT må mellomleddet tillate målporten til brokeren.

Relaterte artiklar