проблема с подключением к ldap - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть следующая конфигурация в моем 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'

1 Ответ

0 голосов
/ 26 апреля 2011

Здесь есть округлость.Кажется, вы пытаетесь использовать uid = root, ou = users, dc = Product, DC = Ghost, DC = COM в качестве DN входа в систему для внесения изменений в каталог, и вы также пишете код для создания этого пользователя.Как это сработает?

Если это как-то сработает, ошибка просто означает, что контекст, возвращаемый getLdapConnection (), не может содержать RDN uid = root, ou = users.Я думаю, что вам нужно просто указать RDN, состоящий из одной части, поэтому вам нужно перейти к контексту 'users' и создать uid = root в качестве подтекста этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...