2010-02-23 1 views
3

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

Мы смогли создать пользователей и группы просто отлично. Тем не менее, сделать этих пользователей частью любой группы является проблемой. Вот то, что код выглядит (вдохновленный 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: '' 

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

EDIT: Мы попробовали тот же код, но с пользователем в Пользователях CN (CN=abcd,CN=Users), и он работает !!! Но почему это не позволит пользователям за пределами этого?

+0

Предлагаю вам изменить вопрос на «Ошибка подключения к ADS через JNDI», потому что ваша проблема заключается в том, чтобы получить соединение, а не добавлять пользователей. –

+0

У нас нет проблем с подключением ... Проблема заключается в добавлении пользователя в группу. – malaverdiere

ответ

0

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

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

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

+0

Да, я могу использовать оба DN, чтобы вытащить объект, но не назначать группе ... – malaverdiere