2015-04-14 2 views
0

Я пытаюсь обновить атрибут unicodePwd в WindowsAD. Я использую ldaps: // server: 636 для создания InitialContext. Соединение просто отлично, и я могу найти запись. Я также могу обновить атрибут givenName, поэтому я не думаю, что с сервером возникают какие-либо проблемы с коммуникацией.Обновление unicodepwd в ActiveDirectory

Я делаю следующее кодирование с моим паролем: javax.xml.bind.DatatypeConverter.printBase64Binary; ((' "' + "T3stPassw0rd" +" ') .getBytes ("UTF-16LE")!)

Когда я пытаюсь обновить unicodePwd, я получаю ошибку ниже javax.naming.OperationNotSupportedException: [LDAP: код ошибки 53 - 0000001F: SvcErr: DSID-031A120C, проблема 5003 (WILL_NOT_PERFORM), данные 0 ];

При поиске похожих вопросов я понял, что это может произойти, если соединение не является ldaps (мой ldaps, я могу искать и обновлять другой атрибут) или если кодировка неверна. Я использую кодировку, которая была рекомендована, но, похоже, не может заставить мой код работать.

Цените любую помощь по этому вопросу.

Спасибо!

+0

У вас есть права на это? –

+0

Да, у меня есть. Я могу проинформировать новое поле для одного и того же пользователя. – ConfusionPrevails

ответ

0

У нас есть пример, который, как известно, работает:

Example - Active Directory Change Password JNDI

+0

Спасибо, я работал с этим примером. Но я не понимаю, почему он не работал, когда я сделал свою собственную кодировку. Этот пароль работал, когда я модифицировал ldap с помощью файла ldif, но не из API. – ConfusionPrevails

+0

Пароль «открытого текста» должен быть заключен в двойные кавычки. Тогда вся строка (с двойными кавычками) должна быть UTF-16. Https://ldapwiki.com/wiki/UnicodePwd#section-UnicodePwd-TheSyntaxOfTheUnicodePwdAttribute – jwilleke

Смежные вопросы