[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: back-sql and multiple objectclasses
- To: Pierangelo Masarati <ando@sys-net.it>
- Subject: Re: back-sql and multiple objectclasses
- From: Wilhelm Meier <wilhelm.meier@fh-kl.de>
- Date: Mon, 2 Jul 2007 09:06:00 +0200
- Cc: openldap-software@openldap.org
- Content-disposition: inline
- In-reply-to: <468679F8.3050604@sys-net.it>
- Organization: Fachhochschule Kaiserslautern / ZweibrÃcken
- References: <200706281013.34725.wilhelm.meier@fh-kl.de> <468679F8.3050604@sys-net.it>
- User-agent: KMail/1.9.5
Am Samstag, 30. Juni 2007 17:42 schrieb Pierangelo Masarati:
> Wilhelm Meier wrote:
> > Hi,
> >
> > I have a problem using back-sql and entries with multiple object classes:
> >
> > If I add the entry:
> >
> > dn: cn=testuser2,dc=kmux,dc=de
> > cn: testuser2
> > sn: test
> > objectClass: top
> > objectClass: person
> > objectClass: posixAccount
> > gidNumber: 514
> > uidNumber: 4711
> > uid: test2
> > homeDirectory: hh
> >
> > I get in the logs of slapd complains that attr uidNumber in objectClass
> > person is undefined. That's right, but the object has the additional
> > class posixAccount, which has the attribute.
> >
> > When I look in the logs, I see that the table ldap_entry_objectclasses
> > gets inserted the auxiliary class posixAccount AFTER it tries to set the
> > attribute uidNumber. So ist clear that it doen't find the attribute.
>
> When data gets inserted in table should have nothing to do with
> objectClass consistency.
>
> Schema checking occurs __before__ doing anything else in add.
Yes, schema checking succeeds:
Jul 2 06:31:29 kmux-postgres slapd[3578]: do_add: dn
(cn=testuser2,dc=kmux,dc=de)
Jul 2 06:31:29 kmux-postgres slapd[3578]: conn=1 op=1 ADD
dn="cn=testuser2,dc=kmux,dc=de"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
==>backsql_add("cn=testuser2,dc=kmux,dc=de")
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_required entry
(cn=testuser2,dc=kmux,dc=de), objectClass "posixAccount"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_required entry
(cn=testuser2,dc=kmux,dc=de), objectClass "person"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "cn"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "sn"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "objectClass"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "gidNumber"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "uidNumber"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed type "uid"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed
type "homeDirectory"
Jul 2 06:31:29 kmux-postgres slapd[3578]: oc_check_allowed
type "structuralObjectClass"
Jul 2 06:31:29 kmux-postgres slapd[3578]: => access_allowed: add access
to "cn=testuser2,dc=kmux,dc=de" "entry" requested
> So I
> assume that if a valid entry is passed, back-sql will not barf. We need
> to know what exactly slapd complains about. And knowing what version of
> OpenLDAP is creating trouble would be a good start.
The version is:
kmux-postgres:/etc/ldap# dpkg -l slapd
ii slapd 2.3.30-5 OpenLDAP server (slapd)
In the log below (some lines after the log above) you see that it tries to set
the attribute uidNumber for objectClass person - thats wrong!?!
...
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): executing "insert
into ldap_entries (id,dn,oc_map_id,parent,keyval) values (DEFAULT,?,?,?,?)"
for dn "cn=testuser2,dc=kmux,dc=de"
Jul 2 06:31:29 kmux-postgres slapd[3578]: for oc_map_id=3,
p_id=1, keyval=2
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "cn"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
backsql_add_attr("cn=testuser2,dc=kmux,dc=de"): executing "update person set
cn=? where id=?" val[0], id=2
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "sn"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
backsql_add_attr("cn=testuser2,dc=kmux,dc=de"): executing "update person set
sn=? where id=?" val[0], id=2
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "objectClass"
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "gidNumber"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
backsql_add_attr("cn=testuser2,dc=kmux,dc=de"): attribute "gidNumber" is not
registered in objectclass "person"
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "uidNumber"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
backsql_add_attr("cn=testuser2,dc=kmux,dc=de"): attribute "uidNumber" is not
registered in objectclass "person"
Jul 2 06:31:29 kmux-postgres slapd[3578]: backsql_add(): adding
attribute "uid"
Jul 2 06:31:29 kmux-postgres slapd[3578]:
backsql_add_attr("cn=testuser2,dc=kmux,dc=de"): attribute "uid" is not
registered in objectclass "person"
>
> p.
>
>
>
> Ing. Pierangelo Masarati
> OpenLDAP Core Team
>
> SysNet s.r.l.
> via Dossi, 8 - 27100 Pavia - ITALIA
> http://www.sys-net.it
> ---------------------------------------
> Office: +39 02 23998309
> Mobile: +39 333 4963172
> Email: pierangelo.masarati@sys-net.it
> ---------------------------------------
--
Wilhelm