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 2016/05/17 22:19:52 UTC

svn commit: r1744327 - in /directory/shared/branches/shared-value/ldap: model/src/main/java/org/apache/directory/api/ldap/model/entry/ model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ model/src/main/java/org/apache/directory/...

Author: elecharny
Date: Tue May 17 22:19:52 2016
New Revision: 1744327

URL: http://svn.apache.org/viewvc?rev=1744327&view=rev
Log:
o Check the Value upName syntax, not the normName
o Fixed the ObjectIdentifier normalizer : it was only accepting values which were already present in the registries
o Some warning removal

Modified:
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/NumericOidSyntaxChecker.java
    directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/ObjectNameSyntaxChecker.java
    directory/shared/branches/shared-value/ldap/schema/data/src/main/resources/schema/ou=schema/cn=adsconfig/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.920.ldif

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/entry/Value.java Tue May 17 22:19:52 2016
@@ -274,7 +274,7 @@ public class Value implements Cloneable,
             // Check the value
             if ( attributeType.getSyntax().getSyntaxChecker() != null )
             {
-                if ( !attributeType.getSyntax().getSyntaxChecker().isValidSyntax( normValue ) )
+                if ( !attributeType.getSyntax().getSyntaxChecker().isValidSyntax( upValue ) )
                 {
                     throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, "Invalid upValue per syntax" );
                 }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/DnNormalizer.java Tue May 17 22:19:52 2016
@@ -95,6 +95,7 @@ public class DnNormalizer extends Normal
     /**
      * {@inheritDoc}
      */
+    @Override
     public void setSchemaManager( SchemaManager schemaManager )
     {
         this.schemaManager = schemaManager;

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/normalizers/ObjectIdentifierNormalizer.java Tue May 17 22:19:52 2016
@@ -20,8 +20,12 @@
 package org.apache.directory.api.ldap.model.schema.normalizers;
 
 
+import org.apache.directory.api.asn1.util.Oid;
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.constants.SchemaConstants;
 import org.apache.directory.api.ldap.model.exception.LdapException;
+import org.apache.directory.api.ldap.model.exception.LdapInvalidAttributeValueException;
+import org.apache.directory.api.ldap.model.message.ResultCodeEnum;
 import org.apache.directory.api.ldap.model.schema.Normalizer;
 import org.apache.directory.api.ldap.model.schema.PrepareString;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
@@ -69,7 +73,53 @@ public class ObjectIdentifierNormalizer
             return "";
         }
         
-        return schemaManager.getRegistries().getOid( value.trim() );
+        String trimmedValue = value.trim();
+        
+        if ( Strings.isEmpty( trimmedValue ) )
+        {
+            return "";
+        }
+
+        String oid = schemaManager.getRegistries().getOid( trimmedValue );
+        
+        if ( oid == null )
+        {
+            // Not found in the schemaManager : keep it as is
+            if ( Oid.isOid( trimmedValue ) )
+            {
+                // It's an numericOid
+                oid = trimmedValue;
+            }
+            else
+            {
+                // It's a descr : ALPHA ( ALPHA | DIGIT | '-' )*
+                for ( int i = 0; i < trimmedValue.length(); i++ )
+                {
+                    char c = trimmedValue.charAt( i );
+                    
+                    if ( i == 0 )
+                    {
+                        if ( !Character.isLetter( c ) )
+                        {
+                            throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
+                                I18n.ERR_04224, value ) );
+                        }
+                    }
+                    else
+                    {
+                        if ( !( Character.isDigit( c ) || Character.isLetter( c ) || ( c == '-'  ) || ( c == '_' ) ) )
+                            {
+                            throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
+                                I18n.ERR_04224, value ) );
+                            }
+                    }
+                }
+                
+                oid = trimmedValue;
+            }
+        }
+        
+        return oid;
     }
 
 
@@ -79,13 +129,6 @@ public class ObjectIdentifierNormalizer
     @Override
     public String normalize( String value, PrepareString.AssertionType assertionType ) throws LdapException
     {
-        if ( value == null )
-        {
-            return null;
-        }
-
-        String str = value.trim();
-
-        return schemaManager.getRegistries().getOid( str );
+        return normalize( value );
     }
 }

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/NumericOidSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/NumericOidSyntaxChecker.java?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/NumericOidSyntaxChecker.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/NumericOidSyntaxChecker.java Tue May 17 22:19:52 2016
@@ -92,7 +92,7 @@ public class NumericOidSyntaxChecker ext
         }
 
         // Just check that the value is a valid OID
-        boolean result = ( Oid.isOid( strValue ) );
+        boolean result = Oid.isOid( strValue );
 
         if ( result )
         {

Modified: directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/ObjectNameSyntaxChecker.java
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/ObjectNameSyntaxChecker.java?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/ObjectNameSyntaxChecker.java (original)
+++ directory/shared/branches/shared-value/ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/syntaxCheckers/ObjectNameSyntaxChecker.java Tue May 17 22:19:52 2016
@@ -71,7 +71,7 @@ public class ObjectNameSyntaxChecker ext
      */
     public boolean isValidSyntax( Object value )
     {
-        String strValue = null;
+        String strValue;
 
         if ( value == null )
         {

Modified: directory/shared/branches/shared-value/ldap/schema/data/src/main/resources/schema/ou=schema/cn=adsconfig/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.920.ldif
URL: http://svn.apache.org/viewvc/directory/shared/branches/shared-value/ldap/schema/data/src/main/resources/schema/ou%3Dschema/cn%3Dadsconfig/ou%3Dattributetypes/m-oid%3D1.3.6.1.4.1.18060.0.4.1.2.920.ldif?rev=1744327&r1=1744326&r2=1744327&view=diff
==============================================================================
--- directory/shared/branches/shared-value/ldap/schema/data/src/main/resources/schema/ou=schema/cn=adsconfig/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.920.ldif (original)
+++ directory/shared/branches/shared-value/ldap/schema/data/src/main/resources/schema/ou=schema/cn=adsconfig/ou=attributetypes/m-oid=1.3.6.1.4.1.18060.0.4.1.2.920.ldif Tue May 17 22:19:52 2016
@@ -1,5 +1,5 @@
 version: 1
-dn: m-oid=1.3.6.1.4.1.18060.0.4.1.2.920,ou=attributetypes,cn=adsconfig,ou=schema
+dn: m-oid=1.3.6.1.4.1.18060.0.4.1.2.920,ou=attributeTypes,cn=adsconfig,ou=schema
 objectclass: metaAttributeType
 objectclass: metaTop
 objectclass: top