У меня есть приложение Java, и я хочу, чтобы каждый пользователь имел возможность изменить собственный пароль через приложение.Изменение пароля Active Directory через Spring LDAP
Это мой код:
public void changePassword()
{
LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("LDAPS://X.Y.Z.T/");
contextSource.setBase("DC=example,DC=com");
contextSource.setUserDn("[email protected]");
contextSource.setPassword("oldpass");
contextSource.afterPropertiesSet();
LdapTemplate ldapTemplate = new LdapTemplate(contextSource);
byte[] li_byOldpass = encodePassword("oldpass");
byte[] li_byNewpass = encodePassword("newpass");
Attribute oldattr = new BasicAttribute("unicodePwd", li_byOldpass);
Attribute newattr = new BasicAttribute("unicodePwd", li_byNewpass);
ModificationItem olditem = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, oldattr);
ModificationItem newitem = new ModificationItem(DirContext.ADD_ATTRIBUTE, newattr);
ModificationItem repitem = new ModificationItem(DirContext.REPLACE_ATTRIBUTE, newattr);
ModificationItem[] mods = new ModificationItem[2];
mods[0] = olditem;
mods[1] = newitem;
try
{
ldapTemplate.modifyAttributes("CN=Name Surname,OU=Office,DC=example,DC=com", new ModificationItem[] { repitem });
}catch(Exception e)
{
System.out.println("Error in changing password on Active Directory: " + e.getMessage());
}
}
К сожалению, это не работает, и это errore, что я получаю:
[LDAP: код ошибки 32 - 0000208D: NameErr : DSID-0310020A, проблема 2001 (NO_OBJECT), данные 0, наилучшее соответствие: «DC = пример, DC = com»];
Любая помощь будет признателен
Благодаря
Надеюсь, что это поможет: http: //forum.spring.io/forum/spring-projects/data/ldap/22371-ldap-error-code-32-no-such-object – Arpit
Не могли бы вы решить вашу проблему? –