ldap_add(): Добавлено: нарушение ограничения

Я изучаю, как выполнять операции CRUD в каталоге LDAP и использую для этой цели ApacheDS. Я пытаюсь добавить нового пользователя, но продолжаю получать следующее предупреждение:

Warning: ldap_add(): Add: Constraint violation

Вот код php, который я использую:

<?php
function ldap_add_user($user)
{
    include('ldap_config.php');
    include('ldap_admin.php');

    $connect = ldap_connect($host, $port);

    if ($connect) 
    {   
        ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);

        $bind = ldap_bind($connect,$username,$password); 

        $info['uid'] =  $user['mail_id'];
        $info['userPassword'] = $user['password'];
        $info['cn'] =  $user['firstname'].' '.$user['lastname'];
        $info['sn'] =  $user['lastname'];
        $info['objectClass'][3] = "inetOrgPerson";
        $info['objectClass'][2] = "organizationalPerson";
        $info['objectClass'][1] = "person";
        $info['objectClass'][0] = "top";
        $dn="uid=".$user['mail_id'].", ou=auth_users, o=mycompany";

        $r = ldap_add($connect,$dn,$info);
        ldap_close($connect);
        return true;
    }
    else
    {   
        return false;
    }
}
?>

И, что интересно, приведенный выше код отлично работает, когда я использую числовой пароль для $user['password'], но когда я передаю буквенно-цифровой или нечисловой пароль, я получаю упомянутое выше предупреждение.


person user3739870    schedule 14.06.2014    source источник
comment
LDAP возвращает ошибку 19, когда вы пытаетесь добавить значение атрибута, которое не соответствует ограничениям по размеру, или когда вы пытаетесь добавить второе значение к атрибуту, который допускает наличие только одного значения.   -  person EricLavault    schedule 14.06.2014
comment
Что сработало для меня, так это изменение атрибута ads-pwdcheckquality с 2 на 0. У меня не было много времени, чтобы понять, почему именно это работает, но я считаю, что это ослабляет критерии по умолчанию, установленные для ограничений для атрибута userPassword.   -  person user3739870    schedule 18.06.2014
comment
Спасибо, что задали этот вопрос @user3739870, у меня та же проблема. Наиболее предпочтительно я хотел бы выбрать безопасный пароль, у кого-нибудь есть решение для этого? Если нет, то где вы изменили атрибут ads-pwdcheckquality?   -  person SJDS    schedule 08.06.2016


Ответы (1)


Если вы используете Apache Directory Studio, щелкните правой кнопкой мыши соединение, выберите «Открыть конфигурацию» и перейдите на вкладку «Политики паролей». Вы увидите опцию «Проверить качество» справа. Установите ее на «Отключено».

person arm    schedule 24.10.2015