java - comandos - Código de error Ldap 32 al agregar usuario a ldap
clusvcadm (1)
Necesito agregar una nueva entrada de usuario a mi ldap. Lo siguiente es mi código:
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);
Aunque cuando se ejecuta este fragmento de código obtengo la siguiente excepción:
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''
Estoy siguiendo el ejemplo especificado en http://kaustuvmaji.blogspot.in/2014/12/simple-example-of-spring-ldap.html para el código. ¿Alguien puede ayudarme a comprender la causa raíz de este error o el código correcto?
El problema aquí es que la ruta ou=Users,dc=wso2,dc=org
no existe en su árbol LDAP, por lo que no puede crear un elemento secundario en esa ruta.
Si especificó una ruta base para su ContextSource
que debe omitirse de todos los DN en el código, ya que todas las rutas serán relativas a la base especificada.