yii2-adldap 不验证 AD 用户
yii2-adldap does not authenticate AD users
我正在尝试使用 yii2-adldap 模块登录,但我收到 "Wrong password error"。密码正确。这是我的代码:
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;
}
我早该看到的。在使用不同的 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.');
}
}
}
所以我需要和我的系统管理员一起工作。
谢谢。
我正在尝试使用 yii2-adldap 模块登录,但我收到 "Wrong password error"。密码正确。这是我的代码:
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;
}
我早该看到的。在使用不同的 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.');
}
}
}
所以我需要和我的系统管理员一起工作。 谢谢。