On Sat, 2007-04-28 at 10:44 +0200, Pierangelo Masarati wrote:
Jens Grigel wrote:

> I'm still not sure if this is actually possible with overlay rwm or if
> i'm misunderstanding the manpage of slapo-rwm. 
> Rewriting the cn's in searches, searchresults, bindDN and compareDN
> works, but the AVA from the compared 
> attribute (here: cn) is not changed from rewriteContext compareAttrDN. 
> "man slapo-rwm" says that the rewriteContext compareAttrDN rewrites
> compare AVA, but whatever i try it's not 
> changing anything in the ldapcompare.

The compare AVA is rewritten if it is DN-valued.  That's the reason of
the context name: compareAttrDN.  So slapo-rwm(5) does not rewrite an
arbitrary AVA's value, only DN-valued ones.

Hi Pierangelo,

thank you for clarifying this, that was what I initially understood from the manpage, but I couldn't make rewriting succeed so I got unsure about the format.

But even if I call ldapcompare with a DN-valued AVA and build a regex for compareAttrDN which should match this DN-valued AVA nothing is rewritten. Packet tracing still shows the unchanged AVA gets send to the remote LDAP-Server.

I'm trying:

ldapcompare -x -D "" -H ldap://testproxy.intra.sskm.de cn=99854,o=sskm cn:cn=99854,o=sskm


and have the following slapd.conf:
...
# suffixmassage
overlay rwm
rwm-suffixmassage "o=sskm" "ou=benutzer,ou=konten,ou=institut,dc=e001dpk1,dc=e001,dc=intern"
# ldap proxy
database  ldap
suffix "ou=konten,ou=institut,dc=e001dpk1,dc=e001,dc=intern"
uri "ldap://5.1.35.254/"
network-timeout 3
chase-referrals no
idassert-bind bindmethod=simple binddn="cn=q001ldap,ou=dienstkonten,ou=konten,ou=institut,dc=e001dpk1,dc=e001,dc=intern" credentials="ldap.Lebt" mode=none
idassert-authzFrom "dn.regex:.*"
# rewriting for ldap proxy
overlay rwm
rwm-rewriteEngine on
rwm-rewriteContext compareDN
rwm-rewriteRule "cn=99([0-9]{3}),(.+)" "cn=s001x$1,$2"
rwm-rewriteContext compareAttrDN
rwm-rewriteRule "cn=99([0-9]{3}),(.+)" "cn=s001x$1,$2"



Then the packet trace shows the follwing send to the remote LDAP-Server:

compareRequest
    entry: cn=s001x854,ou=benutzer,ou=konten,ou=institut,dc=e001dpk1,dc=e001,dc=intern
    ava
        attributeDesc: cn
        assertionValue: cn=99854,o=sskm

The CompareDN gets rewritten by suffixmassage and context compareDN as expected,
but nothing happens with CompareAttrDN. Any hints what I'm still doing wrong?


-- 

Jens Grigel

Citysavingsbank Munich, Germany
Dept. of Network/Security