Hi everyone. I believe this is the correct mailing list to post my question. If not, please point me to the correct one.

I'm using Novell's JLDAP Java library (available from http://www.openldap.org/jldap/) to talk to my OpenLDAP server from an application developed in-house. It's been a pretty straightforward ride: I can list users, change attributes, etc. There is, however, one thing I haven't yet been able to implement - create a new user that inherits the objectClass "posixAccount". According to Novell's code samples, to create such an entry, one would do:

        LDAPEntry entry = new LDAPEntry(cn);
        LDAPAttributeSet attrSet = new LDAPAttributeSet();
        // Object class descriptions
        attrSet.add(new LDAPAttribute("objectclass", new String("inetOrgPerson")));
        // add the other attributes until all required inetOrgPerson attributes are set
        ...
        // add the LDAPAttributeSet
        connection.add(new LDAPEntry(entry.getDN(), attrSet));

This snippet works only if the objectClass being added is an "inetOrgPerson". Trying to add an additional objectClass called "posixAccount" and its attributes ("gidNumber", "description", "gecos", "loginShell" and "userPassword") results in the following error:

LDAPException: Object Class Violation (65) Object Class Violation
LDAPException: Server Message: attribute 'uidNumber' not allowed

Upon further testing, I concluded the posixAccount objectClass is never added, thus its attributes are in fact, not allowed.

How should I proceed to correctly add the objectClass posixAccount?