Ldap error code 32 while adding user to ldap

别说谁变了你拦得住时间么 提交于 2019-12-12 04:24:39

问题


I need to add a new user entry to my ldap. Following is my code:

     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);

Although when this piece of code is executed I get the following exception:

 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'

I am following the example specified at http://kaustuvmaji.blogspot.in/2014/12/simple-example-of-spring-ldap.html for the code. Can someone help me in understanding the root cause for this error or the right code.


回答1:


The problem here is that the path ou=Users,dc=wso2,dc=org doesn't exist in your LDAP tree, so you cannot create a child at that path.

If you specified a base path for your ContextSource that should be omitted from all DNs in code, as all paths will be relative to the specified base.



来源:https://stackoverflow.com/questions/39493845/ldap-error-code-32-while-adding-user-to-ldap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!