Я пытаюсь использовать политику паролей OpenLDAP для аутентификации.
Я установил свою политику со следующим:
dn: cn=passwordDefault,ou=Policies,dc=company,dc=com objectClass: pwdPolicy objectClass: person objectClass: top cn: passwordDefault sn: passwordDefault pwdAttribute: userPassword pwdCheckQuality: 0 pwdMinAge: 0 pwdMaxAge: 7776000 pwdMinLength: 8 pwdInHistory: 5 pwdMaxFailure: 5 pwdFailureCountInterval: 600 pwdLockout: TRUE pwdLockoutDuration: 0 pwdAllowUserChange: TRUE pwdExpireWarning: 604800 pwdGraceAuthNLimit: 0 pwdMustChange: FALSE pwdSafeModify: FALSE
При тестировании политики я могу получить предупреждение только в том случае, если срок действия пароля истек:
try { bindResult = bind(ldapConnection, userDN, userPassword); } catch (LDAPException le) { bindResult = new BindResult(le.toLDAPResult()); } DraftBeheraLDAPPasswordPolicy10ResponseControl pwpResponse = DraftBeheraLDAPPasswordPolicy10ResponseControl.get(bindResult); DraftBeheraLDAPPasswordPolicy10WarningType warningType = pwpResponse.getWarningType();
единственный раз, когда тип предупреждения не равен нулю, - это когда срок действия пароля истек.
когда учетная запись заблокирована после 5 неудачных попыток, ldap возвращает «неверные учетные данные», но это не так.
как мне получить правильную причину, по которой аутентификация не удалась?
Спасибо.