如何从java web更改LDAP中的用户密码?

时间:2016-01-08 11:48:56

标签: java spring apache ldap spring-ldap

我已尝试使用此代码更改LDap中的用户密码但无法正常工作。

    public void changePassword(String newPassword, String commonName) {
            String dn = generateDn(commonName, percorso);

            ModificationItem item = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, new BasicAttribute("userPassword", "{SHA}" + this.encrypt(newPassword)));

            ldapTemplate.modifyAttributes(dn, new ModificationItem[]{item});
        }

当我运行程序时,此行会生成此错误

ldapTemplate.modifyAttributes(dn,new ModificationItem [] {item});

org.springframework.ldap.InvalidAttributeValueException: [LDAP: error code 19 - CONSTRAINT_VIOLATION: failed for MessageType : MODIFY_REQUEST
Message ID : 2
    Modify Request
        Object : 'cn=Massimo Mannini, ou=group,dc=Society'
            Modification[0]
                Operation :  replace
                Modification
userPassword: 0x7B 0x53 0x48 0x41 0x7D 0x4B 0x44 0x31 0x48 0x71 0x54 0x4F 0x4F 0x30 0x52 0x41 ...org.apache.directory.api.ldap.model.message.ModifyRequestImpl@d10dd22    ManageDsaITImpl Control
        Type OID    : '2.16.840.1.113730.3.4.2'
        Criticality : 'false'
'
: invalid reuse of password present in password history:
org.apache.directory.api.ldap.model.exception.LdapOperationException: invalid reuse of password present in password history

0 个答案:

没有答案