[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Objectclass inheritance mechanism in queries doesn't seem to work (ITS#2053)
Full_Name: M.-A. DARCHE
Version: 2.1.4
OS: GNU/Linux
URL:
Submission from: (NULL) (213.41.87.82)
RFC 2251 has a very short paragraph about objectclass inheritance :
Each entry MUST have an objectClass attribute.
...
When creating an entry or adding an objectClass value to
an entry, all superclasses of the named classes are _implicitly_added_
_as_well_if_not_already_present_, and the client must supply values for
any mandatory attributes of new superclasses.
So, if an entry present in OpenLDAP has a superclass, querying for the
superclass should return this entry. Right now it doesn't :-(
There is a test in the source code distribution about search, named :
tests/scripts/test003-search
This test is passing, but doesn't contain a "true" case for inheritance
mechanism
testing.
test003-search tests querying, but only after populating with an LDIF content
that _explicitly_ specifies objectclass attributes, thus invalidating any tests
on
inheritance.
The LDIF content is :
tests/data/test-ordered.ldif
As said, in this LDIF content every OpenLDAPperson entry is _explicitly_
specified
as a person objectclass :
dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of
Michigan,c=US
objectclass: top
objectclass: person
objectclass: OpenLDAPperson
To exactly test inheritance, just add the following entry at the end of :
tests/data/test-ordered.ldif
dn: cn=testEntry,ou=Alumni Association,ou=People,o=University of
Michigan,c=US
objectclass: inetOrgPerson
cn: testEntry
sn: Test
And in test003-search, add the following :
echo "Testing inheritance searching..."
$LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \
'(objectclass=person)'
If OpenLDAP work as I understand it should, we should see the testEntry
entry returned... which is not the case.