Уже несколько дней мы боремся со странной ошибкой ldap. Следующий код работал нормально более года. Внезапно это возвращает local error (0x52)
для нескольких пользователей CN.
Соответствующий код (соединение и связывание всегда работают, только поиск не удается для некоторых пользовательских CN):
$ldapconn = ldap_connect("LDAP URL")
or die("Connection failed.");
ldap_bind($ldapconn, 'USERNAME', 'PASSWORD')
or die("Binding failed");
$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME LASTNAME,O=COMPANY)(objectClass=groupOfNames))')
or die("Search failed: ".ldap_error($ldapconn));
Странно то, что этот код работает для большинства пользователей, а для некоторых — нет.
Так, например:
$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_1 LASTNAME_1,O=COMPANY)(objectClass=groupOfNames))')
-> works
$ldapsearch = ldap_search($ldapconn, '', '(&(uniqueMember=CN=FIRSTNAME_2 LASTNAME_2,O=COMPANY)(objectClass=groupOfNames))')
-> fails
Но оба CN определенно существуют (в более мягком браузере ldap обе команды поиска работают, также в Lotus Notes оба пользователя кажутся идентичными, только с некоторыми клиентами ldap и кодом php, который он терпит неудачу).
Мы также нашли следующее заявление от ibm на этой странице:
https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/apis/ldap_error_condt.htm
0x52 - Some local error occurred. This usually indicates that either the LDAP support (IBM® i option 32) is not installed on the system, or a malloc() operation has failed
Поддержка Ldap установлена, и мы не знаем, где может быть ошибка выделения памяти.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Любая помощь приветствуется
ОБНОВИТЬ:
Мы попытались выполнить поиск в CentOS с помощью cli и получили ту же локальную ошибку (так что это не проблема php ldap, скорее проблема с сервером notes domino):
ldapsearch -D "USERNAME" -w PASSWORD -h LDAP_URL -b "" -s sub "(&(uniqueMember=CN=FIRSTNAME LASTNAME,O=COMPANY)(objectClass=groupOfNames))"-> ldap_result: Local error (-2)
Ошибка возникает всегда для одних и тех же пользователей. Пользовательские CN, в которых возникает проблема, не имеют специальных символов или аналогичных символов и не содержат двойных имен и фамилий.
Задача ещё не решена.
Других решений пока нет …