You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2007/01/24 19:31:03 UTC
svn commit: r499510 - in
/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap:
codec/util/LdapURL.java schema/AbstractSchemaObject.java
util/AttributeUtils.java
Author: elecharny
Date: Wed Jan 24 10:31:03 2007
New Revision: 499510
URL: http://svn.apache.org/viewvc?view=rev&rev=499510
Log:
Porting fix from ADS 1.0.1 to 1.5 : fixing DIRSERVER-758 and some problems with referrals.
Modified:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AbstractSchemaObject.java
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java?view=diff&rev=499510&r1=499509&r2=499510
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/codec/util/LdapURL.java Wed Jan 24 10:31:03 2007
@@ -1153,7 +1153,7 @@
* @param doubleEncode Set if we need to encode the comma
* @return An encoded string
*/
- private String urlEncode( String url, boolean doubleEncode )
+ public static String urlEncode( String url, boolean doubleEncode )
{
StringBuffer sb = new StringBuffer();
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AbstractSchemaObject.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AbstractSchemaObject.java?view=diff&rev=499510&r1=499509&r2=499510
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AbstractSchemaObject.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/AbstractSchemaObject.java Wed Jan 24 10:31:03 2007
@@ -316,6 +316,6 @@
*/
public String toString()
{
- return oid;
+ return "<" + oid.toString() + ", " + names[0] + ">";
}
}
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java?view=diff&rev=499510&r1=499509&r2=499510
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/util/AttributeUtils.java Wed Jan 24 10:31:03 2007
@@ -293,6 +293,74 @@
return false;
}
+ /**
+ * Check if an attribute contains a value. The test is case insensitive,
+ * and the value is supposed to be a String. If the value is a byte[],
+ * then the case sensitivity is useless.
+ *
+ * @param attr The attribute to check
+ * @param value The value to look for
+ * @return true if the value is present in the attribute
+ * @throws NamingException
+ */
+ public final static boolean containsValueCaseIgnore( Attribute attr, Object value )
+ {
+ // quick bypass test
+ if ( attr.contains( value ) )
+ {
+ return true;
+ }
+
+ try
+ {
+ if ( value instanceof String )
+ {
+ String strVal = (String)value;
+
+ NamingEnumeration attrVals = attr.getAll();
+
+ while ( attrVals.hasMoreElements() )
+ {
+ Object attrVal = attrVals.nextElement();
+
+ if ( attrVal instanceof String )
+ {
+ if ( strVal.equalsIgnoreCase( (String)attrVal ) )
+ {
+ return true;
+ }
+ }
+ }
+ }
+ else
+ {
+ byte[] valueBytes = ( byte[] )value;
+
+ NamingEnumeration attrVals = attr.getAll();
+
+ while ( attrVals.hasMoreElements() )
+ {
+ Object attrVal = attrVals.nextElement();
+
+ if ( attrVal instanceof byte[] )
+ {
+ if ( Arrays.equals( (byte[])attrVal, valueBytes ) )
+ {
+ return true;
+ }
+
+ }
+ }
+ }
+ }
+ catch (NamingException ne )
+ {
+ return false;
+ }
+
+ return false;
+ }
+
public static boolean containsAnyValues( Attribute attr, Object[] compared, AttributeType type )
throws NamingException