[Date Prev][Date Next] [Chronological] [Thread] [Top]

proxy ldap with translucent and pcache issue



Hello,

I am working on an ldap proxy config that combines the translucent and
pcache overlays. As far as I understand in its most simple form, this
should lead to a leaf node in the config database, like the following:

dn:
olcDatabase={0}mdb,olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config


Although, I managed to have a working ldap proxy with translucent setup, I
am having problem to extend the stack with the pcache overlay.

Specifically, when I try to add the following,

dn:
olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPcacheConfig
olcOverlay: {0}pcache
olcPcache: mdb 1000 1 50 100
olcPcacheAttrset: 0 + *
olcPcacheTemplate: (objectClass=) 0 3600
olcPcacheTemplate: (uid=) 0 3600

dn:
olcDatabase={0}mdb,olcOverlay={0}pcache,olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcPcacheDatabase
objectClass: olcMdbConfig
objectClass: olcDatabaseConfig
olcDatabase: {0}mdb
olcDbDirectory: /var/lib/ldap/dc=foo,dc=gr.pcache


Î get:
ldap_add: Object class violation (65)

and the debugging shows the error:
no structural objectClass add function

Note that the same pcache config bits work as expected when used directly
on a proxy ldap setup that does not include the translucent overlay. For
completeness I am including the full database config up to the point where
the pcache should supposedly be added.

dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap/dc=foo,dc=gr
olcRootDN: cn=admin,dc=foo,dc=gr
olcRootPW: {SSHA}blah blah
olcSuffix: dc=foo,dc=gr

dn: olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcTranslucentConfig
objectClass: olcOverlayConfig
olcOverlay: {0}translucent
olcTranslucentLocal: description
olcTranslucentNoGlue: TRUE
olcTranslucentRemote: schGrAcPersonID,uid
olcTranslucentStrict: TRUE

dn:
olcDatabase={0}ldap,olcOverlay={0}translucent,olcDatabase={1}mdb,cn=config
objectClass: olcTranslucentDatabase
objectClass: olcLDAPConfig
olcDatabase: {0}ldap
olcDbACLBind: bindmethod=simple
binddn="uid=replicationService,ou=Services,dc=foo,dc=gr"
credentials="secret" starttls=no
olcDbRebindAsUser: TRUE
olcDbURI: ldap://192.168.1.1:389


For the tests I used a Debian packaged openldap-2.4.39

Regards,
Nikos