Я пытаюсь добавить группу в другую группу в Active Directory с помощью программы JNDI. При этом я получаю следующую ошибку
[LDAP: код ошибки 53 - 00002142:
SvcErr: DSID-031A0FC0, проблема 5003
(WILL_NOT_PERFORM), данные 0
Фрагмент кода, который я использую, ниже
- Настройка групповых атрибутов
<code>Attributes attrs = new BasicAttributes(true);
attrs.put("objectClass","group")
attrs.put("description","A test group");
- Добавление группы в другую группу
try{
ModificationItem member[] = new ModificationItem[1];
member[0]= new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("member", groupDN)); </p>
<pre><code>ctx.modifyAttributes(grpDN,member);
System.out.println("Added group to group: " + grpDN);
} catch (NamingException e) {
System.err.println ("Проблема добавления группы в группу:" + e);
}
Я могу добавить пользователя в группы, используя почти одинаковый тип кода (ниже).
- Настройка пользовательских атрибутов
<code>// Create attributes to be associated with the new user
Attributes attrs = new BasicAttributes(true);
attrs.put("objectClass","user");
attrs.put("samAccountName","Perry");
attrs.put("cn","Perry");</p>
<p>attrs.put("givenName","Perry");
attrs.put("sn","Perry");
attrs.put("displayName","Perry Peterson");
attrs.put("description","Research Engineer");</p>
<p>int UF_ACCOUNTDISABLE = 0x0002;
int UF_PASSWD_NOTREQD = 0x0020;
int UF_PASSWD_CANT_CHANGE = 0x0040;
int UF_NORMAL_ACCOUNT = 0x0200;
int UF_DONT_EXPIRE_PASSWD = 0x10000;
int UF_PASSWORD_EXPIRED = 0x800000;</p>
<p>attrs.put("userAccountControl",Integer.toString(UF_NORMAL_ACCOUNT + UF_PASSWD_NOTREQD + UF_PASSWORD_EXPIRED+ UF_ACCOUNTDISABLE));
- Добавление пользователя в группы
try{
ModificationItem member[] = new ModificationItem[1];
member[0]= new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute("member", userDN)); </p>
<pre><code>ctx.modifyAttributes(groupDN,member);
System.out.println("Added user to group: " + groupName);
}catch (NamingException e){
System.err.println("Problem adding user to group: " + e);
}
Есть ли у кого-нибудь представление о том, что я делаю здесь неправильно, или есть какие-либо атрибуты, которые должны быть установлены для групп, также как и в случае с пользователями. У меня есть SSL-соединение между моим клиентом JNDI и сервером, и я могу успешно сбросить пароль пользователя (это невозможно, если SSL не существует)
Я подозреваю, что это происходит, потому что группа, которую я создал ранее, не создана должным образом
Привет
Перри