תעבורת Netty של Qpid JMS יכולה לקבל מטפל פרוקסי חדש דרך הרחבת חיבור:

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 ו-InetSocketAddress הם טיפוסי JDK. מטפלי הפרוקסי שייכים ל-Netty, והמפעל ומונה ההרחבה ל-org.apache.qpid.jms.

עבור broker נגיש לציבור בנתיב פרוקסי ציבורי מורשה, רשימת פרוקסי SOCKS5 מציעה מועמדים למארח ולפורט; ודאו שהצומת הנבחר מאפשר את המארח והפורט בפועל של ה-broker. ההרחבה מחזירה ספק; כל קריאה לספק יוצרת מטפל חדש. החזרת מטפל משתנה אחד שנתפס עבור כמה חיבורים תפר את סדר הבעלות הזה.

לאימות SOCKS5 השתמשו בעומס היתר של המטפל שמקבל שם משתמש וסיסמה. שמרו את פרטי ה-broker על חיבור ה-JMS ושמרו את URI האמיתי של broker AMQPS ואת שם ה-TLS.

ההרחבה תומכת במטפלי פרוקסי HTTP, SOCKS4 ו-SOCKS5 של Netty. עבור HTTP CONNECT, המתווך חייב לאפשר את פורט היעד של ה-broker.

מאמרים קשורים