Обновите пароль в ldap, используя java - PullRequest
0 голосов
/ 09 января 2020

Я использую Spring ldapcontextsource + java для взаимодействия с AD. Когда я создаю учетную запись пользователя с новым паролем, все работает нормально. Код ниже

context.setAttributeValue("unicodePwd", AD.getUnicodePwd(persona.getPassword()));

Однако, когда я попытался обновить пароль, используя тот же код, что и выше, я получил следующую ошибку:

[LDAP: код ошибки 20 - 0000207E: AtrErr: DSID -031906F C, # 1: 0: 0000207E: DSID-031906F C, проблема 1006 (ATT_OR_VALUE_EXISTS), данные 0, Att 9005a (unicodePwd)]; вложенным исключением является javax.naming.directory.AttributeInUseException: [LDAP: код ошибки 20 - 0000207E: AtrErr: DSID-031906F C, # 1: 0: 0000207E: DSID-031906F C, проблема 1006 (ATT_OR_VALUE_EXIS) 0, Att 9005a (unicodePwd)]; оставшееся имя 'CN = brian_2 brian_2, OU = тестовая группа, OU = пользователи организации, OU = учетные записи ICE, DC = vetasi, DC = этап'

Кроме того, я попробовал следующий код. userpassword установлен успешно, но я не могу войти в систему, используя новый пароль, и старый пароль все еще работает

context.setAttributeValue("userPassword", persona.getPassword());

в самом конце, я использовал код ниже для изменения контекста

ldapTemplate.modifyAttributes(context);
...