การเชื่อมต่อ broker ของ Artemis ที่สำเร็จด้วยรหัสผ่าน SOCKS ผิดอาจข้าม proxy handler ไปแล้ว ตรวจสอบปลายทางของ broker ไม่ใช่แค่ socksHost

เอกสาร transport อธิบายที่อยู่ broker แบบ loopback เช่น localhost และ 127.0.0.1 ว่าเป็นที่อยู่ที่ข้ามการกำหนดค่า SOCKS สำหรับเส้นทางการแก้ไขภายในเครื่องปกติ ให้ใช้ที่อยู่ broker ที่ไม่ใช่ loopback ตามที่ตั้งใจเมื่อการเชื่อมต่อต้องผ่านตัวกลาง alias อื่นที่ยังแก้ไขเป็น loopback ก็อาจให้ผลลัพธ์เดียวกัน

ตรวจสอบเงื่อนไขที่แน่นอนของเวอร์ชัน connector

ซอร์สโค้ด connector upstream รุ่นใหม่มีข้อยกเว้น remote-DNS อย่างชัดเจน เงื่อนไขของ proxy handler คือ:

socksEnabled && (socksRemoteDNS || !isTargetLocalHost())

เมื่อเปิด socksRemoteDNS ในการใช้งานที่มีเงื่อนไขนั้น connector จะปล่อยให้ปลายทางไม่ถูกแก้ไขและติดตั้ง SOCKS handler แม้กับปลายทางที่ดูเหมือน loopback ด้วยค่าเริ่มต้น false ที่บันทึกไว้ การทดสอบที่อยู่ภายในเครื่องยังคงสำคัญ

สิ่งนี้เปลี่ยนความหมายของ hostname อย่าง localhost เมื่อส่งไปยังเซิร์ฟเวอร์ SOCKS เพื่อแก้ไข จะหมายถึงมุมมองปลายทางของ proxy ยืนยันว่านี่คือตำแหน่ง broker ที่ตั้งใจก่อนเลือกการแก้ไขระยะไกล

ปรับพฤติกรรมให้ตรงกับไคลเอนต์ Artemis ที่ติดตั้งไว้ เมื่อ handler อยู่ในเส้นทางจริงแล้ว ให้แยกการรับรองความถูกต้อง SOCKS ออกจากการรับรองความถูกต้อง broker และตรวจสอบเส้นทางการเชื่อมต่อที่เป็นผลลัพธ์ แทนที่จะถือว่าเซสชัน broker ที่สำเร็จเป็นหลักฐานว่าใช้ข้อมูลรับรอง proxy

บทความที่เกี่ยวข้อง