directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Emmanuel Lecharny <>
Subject Re: Why is equals() in class LdapName case-sensitive?
Date Sat, 22 Apr 2006 07:57:03 GMT
Stefan Zoerner a écrit :

> Hi all!
> I have found the cause for defect DIRSERVER-606. In fact there are two 
> problems within class OldAuthorizationService. I will provide a patch 
> for your verification soon. But there is still one thing, I do not 
> understand (and which looks more important to me).
> class has an equals 
> method, which is frequently used within OldAuthorizationService, and 
> which is case sensitive:
> LdapName name1 = new LdapName("cn=Fiona Apple,ou=users,ou=system");
> LdapName name2 = new LdapName("cn=fiona apple,ou=users,ou=system");
> System.err.println("name1               = "+name1);
> System.err.println("name2               = "+name2);
> System.err.println("name1.equals(name2) = "+name1.equals(name2));
> prints out
> name1               = cn=Fiona Apple,ou=users,ou=system
> name2               = cn=fiona apple,ou=users,ou=system
> name1.equals(name2) = false

Well, there is no way to compare two different DNs without knowing about 
the  syntax of the types. LdapName  has no information about how to 
compare two CNs, or two OUs, or whatever Attribute type. So the straight 
comparizon is done using a case sensitive approach.

 From a user standpoint, true, both DN are equals. But from LdapName, 
they are different.

In the server, DN comparizon are done using another mechanism, because 
the server is aware of AttributesType. It knows that CN values are to be 
trimmed and case insensitive should be done.

So the pb in DIRSERVER-606 is related to the straight use of equals 
method, which shoul dnot be used (we should compare internal 
representation on DNs, not String representation, so we must first parse 
the string and then compare the result with the other parsed string.)

I gonna have a look at this problem, may be Alex could confirm my 
opinion about this point, or correct me if I'm wrong.


View raw message