У меня есть следующая конфигурация в моем jboss-conf.xml, которую я использую в коде для создания нового пользователя в LDAP.
<login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" >
<module-option name="debug">true</module-option>
<module-option name="java.naming.factory.initial">com.sun.jndi.ldap.LdapCtxFactory</module-option>
<module-option name="java.naming.security.authentication">simple</module-option>
<module-option name="pwdChangeAttr">pwdattribute</module-option>
<!-- number that represents (busnessUser|nonBusinessUser) and (inactive|active|discarded) - uses bitwise-->
<module-option name="userType">employeeType</module-option>
<module-option name="java.naming.provider.url">ldap://devhost-ldap.ghost.com:10389</module-option>
<module-option name="bindDN">uid=root,ou=users,dc=Product,DC=Ghost,DC=COM</module-option>
<!--module-option name="jaasSecurityDomain">jboss.security:service=JaasSecurityDomain,domain=jmx-console</module-option-->
<!--module-option name="bindCredential">1hzUmi4rjRZcWdVFqoh7FD</module-option-->
<module-option name="bindCredential">GhostCredential</module-option>
<module-option name="rolesDn">ou=groups</module-option>
<module-option name="usersDn">ou=users</module-option>
<module-option name="objectClass">groupOfNames</module-option>
<module-option name="baseCtxDN">dc=product,dc=ghost,dc=com</module-option>
<module-option name="baseFilter">(uid={0})</module-option>
<module-option name="rolesCtxDN">dc=Product,dc=ghost,dc=com</module-option>
<module-option name="roleFilter">(member={1})</module-option>
<module-option name="roleAttributeID">cn</module-option>
<module-option name="roleRecursion">-1</module-option>
<module-option name="searchScope">SUBTREE_SCOPE</module-option>
<module-option name="defaultRole">Authenticated</module-option>
<module-option name="allowEmptyPasswords">false</module-option>
</login-module>
Я создаю такой подконтекст, как:
createUserAttr.append(userAttrName).append(ASSIGNMENT_OPERATER)
.append(userUid).append(COMMA_SEPARATER)
.append(commonNameAttribute).append(ASSIGNMENT_OPERATER)
.append(userDistinguishedName);
logger.info("createUserAttr: " + createUserAttr.toString());
getLdapConnection().createSubcontext(createUserAttr.toString(),
atrs);
где логгер распечатывает: createUserAttr: uid=test,ou=users
Подскажите, пожалуйста, почему я все еще получаю это исключение?
An exception has occured when trying to create an LDAP user javax.naming.NameNotFoundException:
[LDAP: error code 32 - The provided entry uid=test,ou=users cannot be added because its suffix is not defined as one of the suffixes within the Directory Server]; remaining name 'uid=root,ou=users'