Сбой ldap_search при использовании расширяемого соответствия в фильтре - PullRequest
0 голосов
/ 24 мая 2018

Мой ldap_search завершается с ошибкой протокола, если я использую расширяемое совпадение в фильтрах.Вот соответствующий код:

$conn = ldap_connect(SERVER, PORT);
ldap_bind($conn, LDAP_USER, LDAP_PW);            

$filter = "(&(whatever=*)(uid=something)(!(ou:dn:=other)))";
$s = ldap_search($conn, BASE_DN, $filter);
if (ldap_errno($conn) != 0) {
    echo "Error: " + ldap_error($conn);
    exit();
}
$res = ldap_get_entries($conn, $s);
var_dump($res);
exit();

, если я использую вместо:

$filter = "(&(whatever=*)(uid=something))";

, он работает нормально.Если я использую ldapsearch из командной строки с расширяемой частью соответствия, он работает нормально, так что это не проблема версии сервера ldap.

Я также пытался включить

ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);

и

ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 2);

, но ничего не получалось.Я использую PHP 7.0.28.

Кто-нибудь знает, что происходит?

Редактировать

Отвечая на @heiglandreas:

user@mycomp:~$ ldapsearch -VV
ldapsearch: @(#) $OpenLDAP: ldapsearch  (Ubuntu) (May 30 2017 19:20:53) $
    buildd@lgw01-18:/build/openldap-JXEADB/openldap-2.4.42+dfsg/debian/build/clients/tools
    (LDAP library: OpenLDAP 20442)

вывод из php_info:

LDAP Support    enabled
RCS Version     $Id: cec20da3ccaa477662b8667bef021291fb5bf6f4 $
Total Links     0/unlimited
API Version     3001
Vendor Name     OpenLDAP
Vendor Version  20442
SASL Support    Enabled

Directive       Local Value     Master Value
ldap.max_links  Unlimited       Unlimited

Отвечая на jwilleke:

vendorName    389 Project
vendorVersion 389-Directory/1.2.11.15 B2016.194.1549

но я уверен, что он поддерживает фильтр, так как ldapseach с расширяемым соответствием из командной строки работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...