Transport Netty Qpid JMS dapat memperoleh handler proksi baru melalui ekstensi koneksi:

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 dan InetSocketAddress adalah tipe JDK. Handler proksi milik Netty, sedangkan pabrik dan enum ekstensi milik org.apache.qpid.jms.

Untuk broker yang dapat dijangkau publik pada rute proksi publik yang diizinkan, daftar proksi SOCKS5 menawarkan kandidat host dan port; pastikan node yang dipilih mengizinkan host dan port sebenarnya dari broker. Ekstensi mengembalikan penyedia; setiap pemanggilan penyedia membuat handler baru. Mengembalikan satu handler yang dapat diubah dan ditangkap untuk beberapa koneksi akan melanggar pengaturan kepemilikan tersebut.

Untuk autentikasi SOCKS5, gunakan overload handler yang menerima nama pengguna dan kata sandi. Simpan kredensial broker pada koneksi JMS dan pertahankan URI broker AMQPS yang sebenarnya serta nama TLS.

Ekstensi mendukung handler proksi HTTP, SOCKS4, dan SOCKS5 Netty. Untuk HTTP CONNECT, perantara harus mengizinkan port target broker.

Artikel terkait