Le jeudi 08 mai 2008 à 01:08 +0200, Pierangelo Masarati a écrit :
Raphaël 'SurcouF' Bordet wrote:
> You've probably misunderstood my request.
> An example will be more efficient :
>
> I've some entries like this:
>
> dn: uid=raphael.bordet,dc=xxx,dc=yy
> objectclass: top
> objectclass: person
> uid: raphael.bordet
> mail: raphael.bordet(a)microsoft.com
>
> I want to translate this entrie to this :
>
> dn: mail=raphael.bordet(a)microsoft.com,dc=xxx,dc=yy
> objectclass: top
> objectclass: person
> uid: raphael.bordet
> mail: raphael.bordet(a)microsoft.com
>
> How can I do this ?
You need something like
Hi,
Thanks for this tips, it's works fine.
database relay
suffix "o=Example,c=US"
relay "dc=example,dc=com"
overlay rwm
rwm-rewriteEngine on
rwm-rewriteMap ldap mail2uid
"ldap://:9011/dc=example,dc=com?uid?sub"
rwm-rewriteMap ldap uid2mail
"ldap://:9011/dc=example,dc=com?mail?sub"
rwm-rewriteContext default
rwm-rewriteRule "^(.+,)?(mail=[^,]+),o=Example,c=US$"
"$1uid=${mail2uid($2)},dc=example,dc=com" ":@I"
Why this rule is needed ?
rwm-rewriteRule "^(.+,)?o=Example,c=US$"
"$1dc=example,dc=com" ":@I"
This rule isn't needed when I'm using "massage" argument for
"relay"
directive.
rwm-rewriteContext searchEntryDN
rwm-rewriteRule "^(.+,)?(uid=[^,]+),dc=example,dc=com$"
"$1mail=${uid2mail($2)},o=Example,c=US" ":@I"
This rule work fine. I've tried to do the same rule for departmentNumber
and departmentUID RDN change but slapd doesn't start if I set this
following rules :
rwm-rewriteContext searchEntryDN
rwm-rewriteRule "^(.+,)?(uid=[^,]+),dc=example,dc=com$"
"$1mail={uid2mail($2)},o=Example,c=US" ":I"
rwm-rewriteRule "^(.+,)?(departmentUID=[^,]+),dmdName=[^,]+,dc=[a-zA-Z]+,dc=example,dc=com$"
"$1departmentNumber={uid2number($2)},ou=services,o=Example,c=US$"
":@I"
rwm-rewriteRule "^(.+,)?dc=example,dc=com$"
"$1o=Example,c=US" ":@I"
This rule isn't needed when I'm using "massage" argument for
"relay"
directive.
Last question : can I modify returned attribute value using rwm ?
Regards,
--
Raphaël 'SurcouF' Bordet