มีวิธีสร้างฟังก์ชัน xdmp:ldap-search() เพื่อใช้การกำหนดค่า LDAP ภายนอกของ appserver หรือไม่

สำหรับแอปพลิเคชันของฉัน ฉันใช้การรับรองความถูกต้องระดับแอปพลิเคชัน และสำหรับผู้ใช้บางราย ฉันต้องการดึงข้อมูลบางอย่างจากไดเร็กทอรีที่ใช้งานอยู่

ฉันได้ตั้งค่าเซิร์ฟเวอร์ http ด้วยการกำหนดค่า "หลักทรัพย์ภายนอก" ที่ฉันสร้างขึ้นสำหรับไดเรกทอรีที่ใช้งานอยู่ของเรา

ฉันพยายามใช้ฟังก์ชันดังนี้:

let $res := xdmp:ldap-search( "([email protected])",  <options xmlns="xdmp:ldap">
                        <use-appserver-config>true</use-appserver-config>
                    </options> )

น่าเสียดายที่สิ่งนี้ไม่สามารถส่งคืนสิ่งใดๆ ได้แม้ว่าจะควรจะเป็นก็ตาม และไม่ได้แสดงข้อความแสดงข้อผิดพลาดใดๆ อีกด้วย อย่างไรก็ตาม หากฉันระบุชื่อผู้ใช้ รหัสผ่าน เซิร์ฟเวอร์ ldap ฯลฯ อย่างชัดเจนตามด้านล่างนี้ ก็จะใช้งานได้ (ในกรณีส่วนใหญ่ หากการตอบกลับไม่มีอักขระเน้นเสียง):

let $res := xdmp:ldap-search( "([email protected])"
                    ,  <options xmlns="xdmp:ldap">
                        <username>{ $config:ldap-connection-username }</username>
                        <password>{ $config:ldap-connection-password }</password>
                        <server-uri>{ $config:ldap-connection-server }</server-uri>
                        <search-base>{ $config:ldap-connection-search-base }</search-base>
                    </options>)

เห็นได้ชัดว่าตัวเลือกจริงไม่ทำงานอย่างที่ฉันคาดไว้ แต่ก็นำมาพิจารณาด้วย เพราะหากฉันตั้งค่าเป็นเท็จ ข้อผิดพลาดจะถูกส่งกลับ

ฉันแน่ใจว่าฉันได้ตั้งค่าสำหรับเซิร์ฟเวอร์ ldap ที่กำหนดค่าบนหน้าผู้ดูแลระบบให้เหมือนกับค่าที่ใช้ในตัวอย่างการทำงานด้านบน

นี่เป็นข้อผิดพลาดหรือไม่? หรือฉันพลาดอะไรไป?

ขอบคุณมากเค


person Kemal Erdogan    schedule 23.10.2017    source แหล่งที่มา
comment
สวัสดี คุณช่วยอธิบายหน่อยได้ไหมว่าคุณกำลังทำการทดสอบโค้ดสองชุดด้านบนนี้ที่ใด แบบสอบถามคอนโซลหรือเซิร์ฟเวอร์แอปโดยตรง? หากเป็น Query Console โปรดยืนยันว่าคุณกำลังเรียกใช้โค้ดในบริบทของเซิร์ฟเวอร์แอปที่เหมาะสม   -  person David Ennis    schedule 23.10.2017
comment
@DavidEnnis ขอบคุณที่มองหา ใช่ ฉันทดสอบทั้งบน qconsole (แทนที่ตัวแปรด้วยสตริงฮาร์ดโค้ดในกรณีที่สอง) และทำงานภายใต้ appserver ที่ฉันกำหนดค่าความปลอดภัยภายนอกให้   -  person Kemal Erdogan    schedule 23.10.2017


คำตอบ (1)


สิ่งนี้ดูเหมือนว่าจะเฉพาะเจาะจงกับการทำงานใน QConsole ภายใต้บริบทของแอพและเซิร์ฟเวอร์ การระบุ <use-appserver-config>true</use-appserver-config> ผลลัพธ์ไม่มีการเรียกไปยังเซิร์ฟเวอร์ AD และลำดับผลลัพธ์ว่างเปล่า การทำงานโดยตรงภายใต้ AppServer จะให้ผลลัพธ์ที่คาดหวัง ฉันจะสร้างรายงานข้อผิดพลาดสำหรับสิ่งนี้

person M.Warnes    schedule 28.10.2017