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 2015/12/30 00:50:54 UTC

svn commit: r1722248 - in /directory/shared/trunk/ldap/client/api/src: main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java

Author: elecharny
Date: Tue Dec 29 23:50:52 2015
New Revision: 1722248

URL: http://svn.apache.org/viewvc?rev=1722248&view=rev
Log:
o Added a check on the Attribute being processed in a Modify operation. if it's not known, then we bypass the entry and spill a warning
o Fixed a bug in the used variable in the modifications.
o Added a test where we have a missing AT in the schema

Modified:
    directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java
    directory/shared/trunk/ldap/client/api/src/test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java

Modified: directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java?rev=1722248&r1=1722247&r2=1722248&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java (original)
+++ directory/shared/trunk/ldap/client/api/src/main/java/org/apache/directory/ldap/client/api/LdifAnonymizer.java Tue Dec 29 23:50:52 2015
@@ -681,6 +681,13 @@ public class LdifAnonymizer
         {
             Attribute attribute = modification.getAttribute();
             AttributeType attributeType = schemaManager.getAttributeType( attribute.getId() );
+            
+            if ( attributeType == null )
+            {
+                System.out.println( "Unknown AttributeType : " + attribute.getId() + " for entry " + entryDn);
+                return null;
+            }
+            
             attribute.apply( attributeType );
             
             // Deal with the special case of a DN syntax
@@ -921,7 +928,7 @@ public class LdifAnonymizer
                     // A Delete operation
                     LdifEntry newLdifEntry = anonymizeChangeDelete( ldifEntry );
 
-                    if ( ldifEntry != null )
+                    if ( newLdifEntry != null )
                     {
                         result.append( newLdifEntry );
                         result.append( "\n" );
@@ -932,7 +939,7 @@ public class LdifAnonymizer
                     // A Add operation
                     LdifEntry newLdifEntry = anonymizeChangeAdd( ldifEntry );
 
-                    if ( ldifEntry != null )
+                    if ( newLdifEntry != null )
                     {
                         result.append( newLdifEntry );
                         result.append( "\n" );
@@ -943,7 +950,7 @@ public class LdifAnonymizer
                     // A Modify operation
                     LdifEntry newLdifEntry = anonymizeChangeModify( ldifEntry );
 
-                    if ( ldifEntry != null )
+                    if ( newLdifEntry != null )
                     {
                         result.append( newLdifEntry );
                         result.append( "\n" );
@@ -954,7 +961,7 @@ public class LdifAnonymizer
                     // A MODDN operation
                     LdifEntry newLdifEntry = anonymizeChangeModDn( ldifEntry );
 
-                    if ( ldifEntry != null )
+                    if ( newLdifEntry != null )
                     {
                         result.append( newLdifEntry );
                         result.append( "\n" );

Modified: directory/shared/trunk/ldap/client/api/src/test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/client/api/src/test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java?rev=1722248&r1=1722247&r2=1722248&view=diff
==============================================================================
--- directory/shared/trunk/ldap/client/api/src/test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java (original)
+++ directory/shared/trunk/ldap/client/api/src/test/java/org/apache/directory/ldap/client/api/LdifAnonymizerTest.java Tue Dec 29 23:50:52 2015
@@ -242,4 +242,24 @@ public class LdifAnonymizerTest
         assertEquals( "ACME Inc. Legal Team".length(), value.length() );
         assertNotEquals( "ACME Inc. Legal Team", value );
     }
+    
+    
+    @Test
+    public void testAnonymizeModifyAddDeleteUnknownAttribute() throws Exception
+    {
+        String ldif = 
+            "dn: uid=jdoe@acme.com,ou=People,o=acme.com\n" +
+            "changetype: modify\n" +
+            "delete: acmeAttr\n" +
+            "acmeAttr::dWlkPWpvaG4uZG9lQGFjbWUuY29tLG91PXBlb3BsZSxvPWFjbWUuY29t\n" +
+            "-\n" +
+            "add: acmeAttr\n" +
+            "acmeAttr::dWlkPWpvaG4uZG9lQGFjbWVOZXcuY29tLG91PXBlb3BsZSxvPWFjbWUuY29t\n" +
+            "-";
+        LdifAnonymizer anonymizer = new LdifAnonymizer( schemaManager );
+        anonymizer.addNamingContext( "o=acme.com" );
+        String result = anonymizer.anonymize( ldif );
+        
+        assertEquals( "", result );
+    }
 }