[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: multiple structural schemas not allowed (major differences between openldap 2.0.23 and 2.1.30)
On Mon, 7 Mar 2005, Mike Garey wrote:
[cut]
Although I'd like to find out if there's a better fix for the above
problem (such as an updated evolutionPerson.schema which I'm not aware
of), it's not my main concern. The main problem I'm having is that
when I attempted to import my old ldif file, I received the following
error:
(65) invalid structural object class chain (evolutionPerson/officePerson)
this was for an entry that contained the following:
objectClass: top
objectClass: inetOrgPerson
objectClass: evolutionPerson
objectClass: officePerson
postalCode: H0H0H0
cn: User Name
creatorsName: cn=Manager,dc=domain,dc=com
createTimestamp: 20041208002030Z
birthDate: 02/24/1978 //birthdate is from evolutionPerson.schema
comment: test comment //comment is from officePerson.schema
After removing at least one of evolutionPerson or officePerson (and
the related attributes), the import worked fine. So it seems as
though it's not possible to have more than one structural object class
which refers to the same superior objectclass (or at least that's what
I've been able to discern from the mailing list messages, such as
found here: http://www.openldap.org/lists/openldap-software/200302/msg00835.html),
even though it worked fine with openldap2-2.0.23-6.3.
I assume that this problem is a result of OpenLDAP 2.1.30 being more
strict with adherence to standards than openldap2-2.0.23-6.3 was?
Yes.
On a related note, I used to use the excellent phpldapadmin web
interface for manipulating my ldap database, although now when
attempting to add a new object class to an entry, I don't even see
options for the evolutionPerson.schema or for officePerson.schema. I
tracked this down to a block of code in phpldapadmin which has the
comment: "// exclude any structural ones, as they'll only generate an
LDAP_OBJECT_CLASS_VIOLATION". I can circumvent the check that
disables showing the evolutionPerson or officePerson schema, but of
course it's useless, since I then receive the afformentioned class
violation.
While I can probably live without the ability to add _both_ the
officeperson and evolutionperson schemas to an entry, I really need to
be able to add at least one of them. So if anyone can give me some
advice or hints on how I can achieve this (preferably through using
phpldapadmin), I would greatly appreciate it. I've considered moving
back to openldap2-2.0.23-6.3, since as I mentioned, I had no problems
with it, but ideally I'd like to figure out how to get everything
working with the more current version.
The proper way to combine the attributes of two structural
objectclasses into a single entry is to extend an existing schema
or create a new schema by defining your own objectclass. If you'd
like to do this, have a look at this section of the OpenLDAP
Administrator's Guide:
http://www.openldap.org/doc/admin22/schema.html#Extending%20Schema
If you seek more information regarding the "invalid structural
object class chain" error, have a look at these FAQ entries:
http://www.openldap.org/faq/data/cache/883.html
http://www.openldap.org/faq/data/cache/807.html
--
Kirk Turner-Rustin | Programmer/Analyst
Ohio Wesleyan University | Libraries and Information Services
http://www.owu.edu | http://lis.owu.edu