gpt4 book ai didi

java - OpenLDAP 仅返回密码过期的警告

转载 作者:行者123 更新时间:2023-11-30 03:35:39 26 4
gpt4 key购买 nike

我正在尝试使用 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 返回“错误凭据”,但事实并非如此。

如何获取身份验证失败的正确原因?

谢谢。

最佳答案

当您收到异常时,您仍然可以进行响应控制。我不知道 Spring-LDAP 中的内容是什么样子,但我已经通过 LdapContext.getResponseControls() 在 JNDI 中完成了它。 。响应控件应包含锁定状态。

但是您需要小心这一点。您不想向用户透露帐户已被锁定。从表面上看,这将是一个安全漏洞。您将向攻击者透露该帐户存在,并且进一步的立即尝试不会成功,这两者都有助于他的工作。

关于java - OpenLDAP 仅返回密码过期的警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com