2016-09-14 4 views
0

Ich muss einen neuen Benutzereintrag zu meinem LDAP hinzufügen. mein Code finden:Ldap Fehlercode 32 beim Hinzufügen von Benutzer zu LDAP

 javax.naming.Name name = new DistinguishedName("cn=" + userName +",ou=Users,dc=wso2,dc=org"); 


    Attribute objectClass = new BasicAttribute("objectClass"); 
     { 
     objectClass.add("top"); 
     objectClass.add("inetOrgPerson"); 
     objectClass.add("person"); 
     objectClass.add("organizationalPerson"); 
     } 
     Attributes userAttributes = new BasicAttributes(); 
     userAttributes.put(objectClass); 
     userAttributes.put("cn", userName); 
     userAttributes.put("sn", "abctest"); 
     userAttributes.put(ATTRIBUTE_USER_PASSWORD, password); 
     LdapTemplate ldapTemplate = (LdapTemplate) SpringBeanFactory 
       .getBean("ldapTemplate"); 
     ldapTemplate.bind(name, null, userAttributes); 

Obwohl, wenn dieses Stück Code ausgeführt wird, ich die folgende Ausnahme erhalten:

org.apache.cxf.interceptor.Fault: [LDAP: error code 32 - No Such Object];  
nested exception is javax.naming.NameNotFoundException: 
[LDAP: error code 32 -  No Such Object]; remaining name 'cn=myname,ou=Users,dc=wso2,dc=org' 

ich das Beispiel folgende bin bei http://kaustuvmaji.blogspot.in/2014/12/simple-example-of-spring-ldap.html für den Code angegeben. Kann mir jemand helfen, die Ursache für diesen Fehler oder den richtigen Code zu verstehen?

Antwort

1

Das Problem hier ist, dass der Pfad ou=Users,dc=wso2,dc=org nicht in Ihrer LDAP-Struktur existiert, so dass Sie kein Kind unter diesem Pfad erstellen können.

Wenn Sie einen Basispfad für Ihre ContextSource angegeben haben, der von allen DNs im Code weggelassen werden sollte, da alle Pfade relativ zur angegebenen Basis sind.

+0

Ich nahm den Pfad von der LDAP-Struktur selbst mit Apache Directory Studio. Zum Beispiel: ein anderer existierender Eintrag hat DN = "cn = newName, ou = Benutzer, dc = wso2, dc = org". Könnte der Fall (Groß-/Kleinschreibung) der Begriffe im Pfad ein Problem sein? Gibt es eine Möglichkeit, den Pfad zu überprüfen? –

+0

Aktualisierte Antwort mit Tipp auf Basispfad – marthursson

+0

Danke @ Marthursson !! Das Entfernen des Basispfads vom DN funktionierte für mich. –

Verwandte Themen