JNDI Добавить пользователей в группы с ADS - PullRequest
3 голосов
/ 23 февраля 2010

Мы пытались добавлять пользователей в группы, используя JNDI. Наш сервер каталогов - Active Directory в Windows 2003.

Мы смогли создать пользователей и группы просто отлично. Однако сделать этих пользователей частью любой группы - проблема. Вот как выглядит код (вдохновленный this ):

ModificationItem mod[] = new ModificationItem[1];
mod[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE, 
               new BasicAttribute("member", "CN=User1,OU=LocationOfUser"));
localcontext.modifyAttributes("CN=Group1,ou=Group,ou=LocationOfTheGroup", mod);

Мы получаем эту ошибку обратно:

javax.naming.NameNotFoundException: [LDAP: error code 32 - 00000525: 
NameErr: DSID-  031A0F80, problem 2001 (NO_OBJECT), data 0, best match of: ''

Мы попытались привязать к корневому каталогу (и не дать полный DN в атрибутах) или привязать к корню (и дать полное DN в атрибутах).

РЕДАКТИРОВАТЬ: Мы попробовали тот же код, но с пользователем в Users CN (CN=abcd,CN=Users), и он работает !!! Но почему это не разрешается пользователям за пределами этого?

1 Ответ

0 голосов
/ 23 февраля 2010

Ошибка говорит "NO_OBJECT". Код ошибки 32: LDAP_NO_SUCH_OBJECT. Так что проблема в том, что один из идентификаторов неверен. Можете ли вы перечислить пользователя или группу с указанным идентификатором?

[EDIT] В сообщении об ошибке указано best match of: '', что означает, что он не может соответствовать ни одной части пути (DN), даже первому элементу. Я предполагаю, что вы должны использовать полный путь в вашем случае (начиная с корня) вместо RDN.

У меня нет объяснения, почему вы можете найти объекты с прямыми запросами. Должно быть что-то другое, но если вы не отправите весь код, это примерно столько, сколько я могу помочь.

...