2017-04-21 3 views
-1

J'utilise WSO2 Identity Server 5.3.0 L'utilisation d'un LDAP externe basé sur OpenLDAP comme UserStore secondaire La classe personne est eduPerson comme il est spécifié sur https://www.internet2.edu/media/medialibrary/2013/09/04/internet2-mace-dir-eduperson-201203.htmll'utilisation du schéma auxiliaire WSO2 5.3.0 création d'un utilisateur Identity Server LDAP

La classe est définie comme auxiliaire

Quand je suis en train d'ajouter un utilisateur que je reçois

[LDAP: code d'erreur 65 - pas de classe d'objet structurel fourni];

Dans la configuration

<Property name="UserEntryObjectClass">eduPerson</Property> 

La trace est complète ce qui suit

Caused by: javax.naming.directory.SchemaViolationException: [LDAP: error code 65 - no structural object class provided]; remaining name 'uid=testy' 
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3167) 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3082) 
at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2888) 
at com.sun.jndi.ldap.LdapCtx.c_bind(LdapCtx.java:423) 
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_bind(ComponentDirContext.java:299) 
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.bind(PartialCompositeDirContext.java:217) 
at org.wso2.carbon.user.core.ldap.ReadWriteLDAPUserStoreManager.doAddUser(ReadWriteLDAPUserStoreManager.java:275) 
... 71 more 

Quelqu'un peut-il aider à ce sujet?

Répondre

0

SOLVED

La solution était d'ajouter plus classe UserEntryObject utilisant comme séparateur/tel qu'il est décrit sur la classe ReadWriteLDAPUserStoreManager

protected BasicAttributes getAddUserBasicAttributes(String userName) { 
     BasicAttributes basicAttributes = new BasicAttributes(true); 
     String userEntryObjectClassProperty = realmConfig 
       .getUserStoreProperty(LDAPConstants.USER_ENTRY_OBJECT_CLASS); 
     BasicAttribute objectClass = new BasicAttribute(LDAPConstants.OBJECT_CLASS_NAME); 
     String[] objectClassHierarchy = userEntryObjectClassProperty.split("/"); 
     for (String userObjectClass : objectClassHierarchy) { 
      if (userObjectClass != null && !userObjectClass.trim().equals("")) { 
       objectClass.add(userObjectClass.trim());