java - Spring-LDAP - 密码比较如何更新失败的密码尝试

标签 java spring ldap spring-ldap

使用 ApacheDS 2.0.0,配置的相关部分是:

dn: ads-pwdId=default,ou=passwordPolicies,ads-interceptorId=authenticationInterceptor,ou=interceptors,ads-directoryServiceId=default,ou=config
ads-pwdminlength: 5
ads-pwdinhistory: 5
ads-pwdid: default
ads-pwdcheckquality: 1
ads-pwdlockout: TRUE
ads-pwdlockoutduration: 0
ads-pwdvalidator: org.apache.directory.server.core.api.authn.ppolicy.DefaultPasswordValidator
ads-pwdmaxfailure: 5
ads-pwdattribute: userPassword
ads-pwdfailurecountinterval: 30
entryParentId: 0889249e-fc0d-44ec-9df6-af21e46b3dac
ads-enabled: TRUE
objectclass: ads-passwordPolicy
objectclass: ads-base
objectclass: top
entryuuid: 22d39b05-7219-471f-9ca5-a9b12aff7a9e
ads-pwdgraceauthnlimit: 5
modifytimestamp: 20150409194653.529Z
entrycsn: 20150409194653.530000Z#000000#001#000000
ads-pwdexpirewarning: 600
modifiersname: 0.9.2342.19200300.100.1.1=admin,2.5.4.11=system

然后在 Spring-LDAP 3.2.5/Security 中,我使用以下身份验证管理器配置:

<authentication-manager alias="authenticationManager">
    <ldap-authentication-provider
        user-context-mapper-ref="detailsMapper"
        user-dn-pattern="uid={0},ou=people" user-search-filter="(uid={0})"
        group-search-base="ou=groups" group-search-filter="member={0}">
        <password-compare />
    </ldap-authentication-provider>
</authentication-manager>

我可能误解了“password-compare”的边界,但是当我删除该元素时,LDAP 似乎保留了“pwdFailureTime”密码失败。由于“密码比较”元素丢失,因此帐户不会因多次密码失败而被锁定。

对我在这里缺少的东西有什么想法吗?

最佳答案

当您使用password-compare时,您不会以用户身份使用其密码绑定(bind)到LDAP,因为应该使用LDAP,因此LDAP永远不会看到失败的登录尝试.

相反,Spring 充当 LDAP 管理员,从用户条目中提取密码,并比较密码本身。

您不应该使用此选项。这违背了LDAP的设计初衷。

关于java - Spring-LDAP - 密码比较如何更新失败的密码尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673329/

相关文章:

java - 为什么大写在这里没有正确排序?

java - 自定义 Snackbar 操作按钮的颜色问题

java - 服务器端缓存

java - 不同的url采用不同的认证方式

java - 在 Spring Boot 中模拟多个 bean

java - MDC(映射诊断上下文)支持 JUL(Java.util.Logging)

java - 如何使用 Spring Boot 在 application.properties 中注入(inject) Maven 配置文件的属性

ldap - 根据不同的LDAP用户联合在Keycloak中分配不同的默认用户组

active-directory - 如何将 Microsoft ADAM 配置为类似于 Active Directory?

c++ - 如何将此 LDAP 代码从 VBS 转换为 C++