Apakah ada cara untuk membuat fungsi xdmp:ldap-search() menggunakan konfigurasi LDAP eksternal server aplikasi

Untuk aplikasi saya, saya menggunakan otentikasi tingkat aplikasi, dan untuk beberapa pengguna saya ingin mengambil beberapa informasi dari direktori aktif.

Saya telah menyiapkan server http dengan konfigurasi "sekuritas eksternal" yang saya buat untuk direktori aktif kami.

Saya mencoba menggunakan fungsi sebagai berikut:

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

Sayangnya, ini tidak mengembalikan apa pun meskipun seharusnya, juga tidak memberikan pesan kesalahan apa pun. Namun, jika saya secara eksplisit menentukan nama pengguna, kata sandi, server ldap, dll. seperti di bawah ini, ini berfungsi (baik, untuk sebagian besar kasus, jika responsnya tidak mengandung karakter beraksen):

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>)

Jelas sekali, opsi true tidak berfungsi seperti yang saya harapkan. Tapi, itu juga diperhitungkan karena jika saya menyetelnya ke false, kesalahan akan dikembalikan.

Saya yakin bahwa saya menetapkan nilai untuk server ldap yang dikonfigurasi pada halaman admin sama dengan yang digunakan dalam contoh kerja di atas.

Apakah ini bug? Atau, apa yang saya lewatkan?

terima kasih banyak, K.


person Kemal Erdogan    schedule 23.10.2017    source sumber
comment
Halo. Bisakah Anda menjelaskan di mana Anda menjalankan pengujian untuk dua set kode di atas? Konsol kueri atau server aplikasi secara langsung? Jika Query Console, harap konfirmasikan bahwa Anda menjalankan kode dalam konteks server aplikasi yang sesuai.   -  person David Ennis    schedule 23.10.2017
comment
@DavidEnnis, terima kasih sudah mencari. Ya, saya menguji keduanya di qconsole (mengganti variabel dengan string hardcode dalam kasus kedua), dan menjalankannya di bawah server aplikasi yang saya konfigurasikan keamanan eksternalnya.   -  person Kemal Erdogan    schedule 23.10.2017


Jawaban (1)


Tampaknya ini khusus untuk dijalankan di QConsole dalam konteks server aplikasi. Menentukan <use-appserver-config>true</use-appserver-config> menghasilkan tidak ada panggilan yang dilakukan ke server AD dan urutan hasil kosong. Berjalan langsung di bawah AppServer akan memberikan hasil yang diharapkan, saya akan membuat laporan bug untuk ini.

person M.Warnes    schedule 28.10.2017