Spring-LDAP - 密码比较操作方法更新失败的密码尝试

时间:2015-06-05 18:22:57

标签: 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>

我可能误解了&#34;密码比较&#34;但当我删除该元素时,LDAP似乎维持了&#34; pwdFailureTime&#34;密码失败。使用&#34;密码比较&#34;丢失的元素,因此多个密码失败不会锁定帐户。

对我在这里失踪的想法有什么想法?

1 个答案:

答案 0 :(得分:2)

当您使用password-compare时,您没有使用他的密码作为用户绑定LDAP,因为LDAP应该被使用,因此LDAP永远不会看到失败的登录尝试。

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

您不应该使用此选项。这与LDAP设计的意图相反。