问题描述
CentOS7上面运行的项目,在用户管理添加新用户时,密码设置成Aa12345@时,会报Cannot read property 'message' of undefined的错误
在/etc/pam.d下的common-password文件中
password [success ok] pam_cracklib.so rejectusername minlen=8 difok=3 ucredit=0 lcredit=0 dcredit=0 ocredit=0
inline int pamUpdatePassword(const std::string& username, const std::string& password)
{
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast)
const struct pam_conv localConversation = {pamFunctionConversation,const_cast<char*>(password.c_str())};
pam_handle_t* localAuthHandle = nullptr; // this gets set by pam_start
int retval = pam_start("webserver", username.c_str(), &localConversation, &localAuthHandle);
if (retval != PAM_SUCCESS)
{
return retval;
}
retval = pam_chauthtok(localAuthHandle, PAM_SILENT);
if (retval != PAM_SUCCESS)
{
pam_end(localAuthHandle, PAM_SUCCESS);
return retval;
}
return pam_end(localAuthHandle, PAM_SUCCESS);
}
密码设置成Aa12345@时,pam_chauthtok()函数返回PAM_AUTHTOK_ERR,如果密码设置成Bji230309@时,返回PAM_SUCCESS(正常的),为什么将密码设置成Aa12345@不行,大家有遇到过嘛?