Le 20/10/16 à 17:57, Radovan Semancik a écrit : > Hi, > > I'm a bit puzzled about the matching rules and normalizers. I have > ordinary RFC4519 attribute, let's say it is 'dn': 'dc' not 'dn'.. > > attributetype ( 0.9.2342.19200300.100.1.25 NAME ( 'dc' > 'domainComponent' ) > DESC 'RFC1274/2247: domain component' > EQUALITY caseIgnoreIA5Match > SUBSTR caseIgnoreIA5SubstringsMatch > SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 > SINGLE-VALUE > USAGE userApplications ) > > Now when I parse that schema and look at quality matching rule and its > normalizer it is this: > > NORMALIZER ( 1.3.6.1.4.1.1466.109 > .114.2 > FQCN > )
The caseIgnoreIA5MatchMR definition is : version: 1 dn: m-oid=1.3.6.1.4.1.1466.109.114.2,ou=matchingRules,cn=system,ou=schema m-oid: 1.3.6.1.4.1.1466.109.114.2 m-obsolete: FALSE m-syntax: 1.3.6.1.4.1.1466.115.121.1.26 objectclass: metaMatchingRule objectclass: metaTop objectclass: top m-name: caseIgnoreIA5Match creatorsname: uid=admin,ou=system and the associated comparator is : version: 1 dn: m-oid=1.3.6.1.4.1.1466.109.114.2,ou=comparators,cn=system,ou=schema m-oid: 1.3.6.1.4.1.1466.109.114.2 m-fqcn: org.apache.directory.api.ldap.model.schema.comparators.DeepTrimToLowerCachingNormalizingComparator objectclass: metaComparator objectclass: metaTop objectclass: top creatorsname: uid=admin,ou=system so the DeepTrimToLowerCachingNormalizingComparator class will be used. The normalizer to be used is the DeepTrimToLowerNormalizer one, not the NoOp normalizer. > > ... and it is an instance of NoOpNormalizer class. As this is is > case-ignore attribute I would expect normalizer that will convert the > value case. Am I right? Or is there really reason for NoOpNormalizer? > > The NoOpNormalizer causes that the values in the DN are not > normalized. And therefore DNs such as dc=EXAMPLE,dc=COM and > dc=example,dc=com are considered to be different. -- Emmanuel Lecharny Symas.com directory.apache.org