Hi to all,

today I tried to set up the new overlay variant with OpenLDAP 2.6 (symas-packages) on a Debian 11 system

First step I loaded the module:
I added the Attribute "postaladdress" to an OU (ou=firma,dc=example,dc=net)
and the "mobile" attribute to (ou=firma,dc=example,dc=net)

Then I added the module
------------
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: variant.la
------------

Then I created the following configuration:
------------
dn: olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantConfig
olcVariantPassReplication: TRUE

dn: name=example,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantVariant
olcVariantEntry: dc=example,dc=net

dn: olcVariantVariantAttribute=postaladdress,name={0}example,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantAttribute
olcVariantVariantAttribute: postaladdress
olcVariantAlternativeAttribute: postaladdress
olcVariantAlternativeEntry: ou=firma,dc=example,dc=net

dn: name=firma telefon,name={0}example,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantAttribute
olcVariantVariantAttribute: telephonenumber
olcVariantAlternativeAttribute: mobile
olcVariantAlternativeEntry: cn=Verw-al,ou=users,ou=Verwaltung,ou=firma,dc=example,dc=net
------------
That works fine. dc=example,dc=net has the "postaladdress" from ou=firma
and
dc=example,dc=net has the "mobile" as "telephonenumber" from "cn=verw-al"

But now I like to set the attribute "telephonenumber" for all users in
ou=users,ou=verwaltung,ou=firma,dc=example,dc=net" to the "telephonenumber" of "ou=firma,dc=example,dc=net". So I have to deal with RegEx here.

I took a look at the example in the manpage and I'm even more confused. I tried the following:
--------------------------
dn: name=verw-tel,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantRegex
olcVariantEntryRegex: cn=.+,ou=users,ou=verwaltung,ou=firma,dc=example,dc=net

dn: olcVariantVariantAttribute=telephonNumber,name={1}verw-tel,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
objectClass: olcVariantAttributePattern
olcVariantVariantAttribute: telephoneNumber
olcVariantAlternativeAttribute: telephoneNumber
olcVariantAlternativeEntryPattern: ou=Verwaltung,ou=firma,dc=example,dc=net
--------------------------

The first entry:
dn: name=verw-tel,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config

Is telling me who should get the value from the shared attribute. Right? That's the way it works without RegEx. The second entry should point to the object and it's attribute to share. Right?

So in "ou=verwaltung,...." I have the attribute "telephoneNumber" set and this should be shared.

But If I try to add the entries. The first entry works. But the second entry gives the following error message:
---------------
adding new entry "olcVariantVariantAttribute=telephonNumber,name={1}verw-tel,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config" ldapadd: update failed: olcVariantVariantAttribute=telephonNumber,name={1}verw-tel,olcOverlay={5}variant,olcDatabase={2}mdb,cn=config
ldap_add: Can't contact LDAP server (-1)
---------------
And as you can see, adding the entry crashes the slapd. Can someone tell me the right way to use variant with regex?


Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to