yii2-adldap не аутентифицирует пользователей AD - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь войти в систему с помощью модуля yii2-adldap, но получаю «Ошибка неверного пароля».Пароль правильный.Вот мой код:

  public function validatePassword($attribute, $params)
{

    if (!$this->hasErrors()) {
        $user = $this->getUser();
        if (!$user) {
            $this->addError('username', 'Incorrect username.');
        } else {
            $userprincipalname = $this->_user->queryLdapUserObject()->getAttribute('userprincipalname');

            if(! Yii::$app->ad->auth()->attempt($userprincipalname[0], $this->password)){

                $this->addError('password', 'Incorrect password.');
            }
        }
    }
}

И мой getUser ниже:

 public function getUser()
{
    if ($this->_user === false) {
        $this->_user = \Edvlerblog\Adldap2\model\UserDbLdap::findByUsername($this->username);
    }

    return $this->_user;
}

1 Ответ

0 голосов
/ 21 сентября 2018

Я должен был это увидеть.После тестирования с другим Active Directory я обнаружил, что проблема связана с настройкой моей AD.Вернул мой код к этому, и он работал (для некоторых пользователей):

   public function validatePassword($attribute, $params)
{


    if (!$this->hasErrors()) {
        $user = $this->getUser();

        if (!$user || !$user->validatePassword($this->password)) {
            $this->addError($attribute, 'Incorrect username or password.');
        }
    }

}

Так что мне нужно работать с системным администратором.Спасибо.

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