You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2006/06/24 15:42:33 UTC
[jira] Closed: (DIRSERVER-334) Pb with case sensitivity for
attributes
[ http://issues.apache.org/jira/browse/DIRSERVER-334?page=all ]
Emmanuel Lecharny closed DIRSERVER-334:
---------------------------------------
done
> Pb with case sensitivity for attributes
> ---------------------------------------
>
> Key: DIRSERVER-334
> URL: http://issues.apache.org/jira/browse/DIRSERVER-334
> Project: Directory ApacheDS
> Type: Bug
> Reporter: Emmanuel Lecharny
> Assignee: Alex Karasulu
> 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