directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <directory-...@incubator.apache.org>
Subject [jira] Created: (DIREVE-224) Pb with case sensitivity for attributes
Date Fri, 12 Aug 2005 22:11:53 GMT
Pb with case sensitivity for attributes
---------------------------------------

         Key: DIREVE-224
         URL: http://issues.apache.org/jira/browse/DIREVE-224
     Project: Directory Server
        Type: Bug
  Components: jdbm database  
    Versions: 0.9.2    
    Reporter: Emmanuel Lecharny
    Priority: Blocker


There is a huge problem with attributes. They are supposed to be case insensitive (RFC 2251,
par. 2.5.1: "... they must be IA5 (ASCII) strings, and they are case insensitive (e.g. "foo@bar.com"
will match "FOO@BAR.COM")")

If we use the BasicAttribute class (javax.naming.directory.BasicAttribute) without lowercasing
the attribute's name, there is no way to guarantee that we could do a attributes.get( <name>.toLowerCase()
) with a correct response.

This usage is spreaded all over the code and need to be fixed.

As an example, here is a snapshot of a working code :

        /*
         * create objectClass=top, objectClass=organizationalUnit  
         */
        Attributes attributes = new BasicAttributes();
        Attribute attribute = new BasicAttribute( "objectClass".toLowerCase() );  // we MUST
lowercase the attribute's name
        attribute.add( "top" );
        attribute.add( "organizationalUnit" );
        attributes.put( attribute );
        
        Attribute attr = attributes.get("objectclass".toLowerCase());
        Attribute attr2 = attributes.get("objectClass".toLowerCase());
        Assert.assertTrue( attr == attr2 ); // no problem, they are equal.

        /*
         * The same piece of code, without the lowerCase()
         */
        Attributes attributes = new BasicAttributes();
        Attribute attribute = new BasicAttribute( "objectClass");
        attribute.add( "top" );
        attribute.add( "organizationalUnit" );
        attributes.put( attribute );
        
        Attribute attr = attributes.get("objectclass");
        Attribute attr2 = attributes.get("objectClass");
        Assert.assertTrue( attr == attr2 ); // they are different, as attr is null.




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message