JNDI modifyAttributes и NameNotFoundError - PullRequest
       1

JNDI modifyAttributes и NameNotFoundError

0 голосов
/ 02 августа 2011

У меня странная проблема с методом LdapContext.modifyAttributes (name, mods).Это дает мне NameNotFoundException, даже если этот объект существует по тому же пути.(Я уже проверил с помощью небольшого фрагмента кода, который возвращает * Отличительное имя * с) Вот мой пример кода;

ModificationItem[] mods = new ModificationItem[1]; 
            for(Group g: this.groups)
            {
                mods[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,new BasicAttribute("member", g.getMembers()));
                this.context.modifyAttributes("cn="+g.getGroupName()+", ou=OU_MyGroups", mods);
            }

Это мои строки подключения, если это помогает:

this.setConnectionUrl("ldap://10.77.162.187:389/dc=C4test");

Также я пытался получить атрибуты из того же объекта, используя ту же строку имени.

Attributes attr = this.context.getAttributes("cn="+g.getGroupName()+", ou=OU_MyGroups");

И это работало просто отлично.Так что сейчас у меня нет идей.

И это мой след стека:

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

; remaining name 'cn=INSAN KAYNAKLARI DIREKTORLUGU, ou=OU_MyGroups'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
    at com.sun.jndi.ldap.LdapCtx.c_modifyAttributes(Unknown Source)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_modifyAttributes(Unknown Source)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(Unknown Source)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.modifyAttributes(Unknown Source)
    at javax.naming.directory.InitialDirContext.modifyAttributes(Unknown Source)
    at com.carrefour.activeDirectory.GroupUpdater.updateGroups(GroupUpdater.java:140)
    at com.carrefour.activeDirectory.GroupUpdater.<init>(GroupUpdater.java:129)
    at com.carrefour.activeDirectory.ActiveDirectoryUpdater.main(ActiveDirectoryUpdater.java:101)

1 Ответ

0 голосов
/ 03 августа 2011

Что такое DN этого.context ()?Если это 'ou = OU_MyGroups', вам не нужно указывать это снова в modifyAttributes ().Как правило, вам нужно только указать RDN элемента для изменения относительно контекста, для которого вы вызываете modifyAttributes ().

...