LDAP - не может включить пользователя, использующего Spring Java Java API - PullRequest
0 голосов
/ 23 марта 2019

Попытка включить учетную запись пользователя и получение ошибки ниже.Если я сразу перехожу к этой машине с Windows после создания пользователя (с помощью Java API) и обновляю пароль (вручную с помощью интерфейса на машине с Windows), например «password1», а затем пытаюсь включить пароль с помощью Java, он работает нормально.

Вот как я устанавливаю пароль при создании пользователя

BasicAttribute basicAttribute1=new BasicAttribute("userPassword","password1".getBytes(StandardCharsets.US_ASCII));
            context.setAttribute(basicAttribute1);

Затем пытаюсь изменить управление useraccount на 512 и получаю

 "errorMessage": "[LDAP: error code 53 - 0000052D: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0\n\u0000]; nested exception is javax.naming.OperationNotSupportedException: [LDAP: error code 53 - 0000052D: SvcErr: DSID-031A12D2, problem 5003 (WILL_NOT_PERFORM), data 0\n\u0000]; remaining name 'CN=SachinVTendulkar,OU=SDCWASD001,OU=Users,OU=Mycity,OU=Enterprise Support'"

Кажется, я не правильно устанавливаю пароль при создании пользователя с Java- Я создаю пользователя с userAccountControl-514 и паролем вместе с другими атрибутами, такими как имена и т. Д. (Сначала я хочу создать в отключенном режиме)

Затем, когда я просто пытаюсь включить пользователя, возникает эта проблема.И для того же пользователя, если я иду на машину Windows и обновляю пароль, а затем пытаюсь включить его с помощью Java, он работает нормально - так что исключаю другие проблемы, такие как ldaps и т. Д.

Журналы, когда я создаю пользователя для справки:

журнал создания пользователя: создание нового пользователя: JohnSmith, в DN: CN = JohnSmith, OU = SDCWASD001, OU = Users, OU = MyCity, OU = Enterprise Support, с контекстом: org.springf.ldap.core.DirContextAdapter: dn = CN = JohnSmith, OU = SDCWASD001, OU = Пользователи, OU = MyCity, OU = Поддержка предприятия {mail=adsadsa51@test.com, Описание = Тестовая учетная запись, CN = JohnSmith, objectclass [0] = top, objectclass[1] = Person, objectclass [2] = organizPerson, objectclass [3] = пользователь, userPassword = summer01, sAMAccountName = adsadsa51, userPrincipalName=adsadsa51@test.com, данное имя = Джон, displayName = JohnSmith, имя = JOHNSMITH, имя_Датчика_Индикации0, sn = Smith, userAccountControl = 514}

Затем, чтобы включить пользователя, я делаю следующее и получаю эту ошибку (я делаю это в отдельном вызове)

ModificationItem[] mods=new ModificationItem[1];
         mods[0]=new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("userAccountControl",Integer.toString(512)));
 ldapTemplate.modifyAttributes(dn, mods);

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019

Разрешение - использовать SSL для обновления атрибутов пароля.

0 голосов
/ 26 марта 2019

Попробуйте установить значение unicodePwd для учетной записи . Что-то вроде:

final byte[] quotedPasswordBytes = ('"'+password+'"').getBytes("UTF-16LE");
    container.put(new BasicAttribute("unicodePwd", quotedPasswordBytes));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...