ando@OpenLDAP.org wrote:
Update of /repo/OpenLDAP/pkg/ldap/servers/slapd
Modified Files: filter.c 1.142 -> 1.143
Log Message: for consistency, always represent UUIDs correctly (ITS#5168; really, a de-normalize hook would help)
I guess we need a syntax flag that says "denormalization needed" and perhaps a usage flag for the normalizer that says "denormalize a normalized value"
Howard Chu wrote:
I guess we need a syntax flag that says "denormalization needed" and perhaps a usage flag for the normalizer that says "denormalize a normalized value"
Rather than "syntax", a "matching rule" flag, as normalization is per matching rule. UUID matching rules already have a SLAP_MR_MUTATION_NORMALIZER that prevents UUIDs from being normalized when used in a DN. Probably we need to do something slightly different, as the current approach would not normalize BADBADEF-DBAD-1029-92f7-BADBADBADBAD into badbadef-dbad-1029-92f7-badbadbadbad unless dnPrettyNormal is called: in that case, pretty would lowercase the A-F chars, so normal would see them lowercased. For example:
$ slapdn 'entryUUID=BADBADEF-DBAD-1029-92f7-BADBADBADBAD' -N entryUUID=BADBADEF-DBAD-1029-92f7-BADBADBADBAD $ slapdn 'entryUUID=BADBADEF-DBAD-1029-92f7-BADBADBADBAD' -P entryUUID=badbadef-dbad-1029-92f7-badbadbadbad $ slapdn 'entryUUID=BADBADEF-DBAD-1029-92f7-BADBADBADBAD' DN: <entryUUID=BADBADEF-DBAD-1029-92f7-BADBADBADBAD> check succeeded normalized: <entryUUID=badbadef-dbad-1029-92f7-badbadbadbad> pretty: <entryUUID=badbadef-dbad-1029-92f7-badbadbadbad>
which sounds a bit inconsistent (no issue in slapd: DNs coming from client requests are always pretty-normalized, while DNs for internal use are always in pretty or normal form).
So I'd go for using the SLAP_MR_MUTATION_NORMALIZER flag to determine if a value needs to be de-normalized, and OR it to the usage in normalization hooks (smr_normalize) to instruct them to de-normalize rather than normalize values.
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 ---------------------------------------