From 0726a2de92f40f1272c75befed0bfd08aa3abb79 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 30 Nov 2006 20:54:10 +0000
Subject: [PATCH] Update the audit logger to properly format modify operations.  Previously, all of the attribute types were run together and there were no values.  It now formats them in LDIF change format.

---
 opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java |   56 +++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 39 insertions(+), 17 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java
index 02e1e49..09be7c9 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/DirectoryAuditLogger.java
@@ -74,6 +74,7 @@
 import static org.opends.server.messages.ConfigMessages.*;
 import static org.opends.server.messages.MessageHandler.*;
 import static org.opends.server.types.ResultCode.*;
+import static org.opends.server.util.ServerConstants.*;
 
 
 
@@ -230,8 +231,9 @@
       ByteString dnString = addOperation.getRawEntryDN();
       encodeValue(dnString, buffer);
 
-      buffer.append("\n");
-      buffer.append("changetype: add\n");
+      buffer.append(EOL);
+      buffer.append("changetype: add");
+      buffer.append(EOL);
       List<LDAPAttribute> rawAttributes = addOperation.getRawAttributes();
       for(LDAPAttribute attr : rawAttributes)
       {
@@ -245,14 +247,14 @@
           encodeValue(nextString, buffer);
           while (iterator.hasNext())
           {
-            buffer.append("\n");
+            buffer.append(EOL);
             buffer.append(attr.getAttributeType());
             buffer.append(":");
             nextString = iterator.next();
             encodeValue(nextString, buffer);
           }
         }
-        buffer.append("\n");
+        buffer.append(EOL);
       }
 
       auditLogger.log(DirectoryLogLevel.INFORMATIONAL, buffer.toString());
@@ -343,9 +345,10 @@
       buffer.append("dn:");
       ByteString dnString = deleteOperation.getRawEntryDN();
       encodeValue(dnString, buffer);
-      buffer.append("\n");
-      buffer.append("changetype: delete\n");
-      buffer.append("\n");
+      buffer.append(EOL);
+      buffer.append("changetype: delete");
+      buffer.append(EOL);
+      buffer.append(EOL);
 
       auditLogger.log(DirectoryLogLevel.INFORMATIONAL, buffer.toString());
     }
@@ -415,8 +418,9 @@
       buffer.append("dn:");
       ByteString dnString = modifyOperation.getRawEntryDN();
       encodeValue(dnString, buffer);
-      buffer.append("\n");
-      buffer.append("changetype: modify\n");
+      buffer.append(EOL);
+      buffer.append("changetype: modify");
+      buffer.append(EOL);
       List<LDAPModification> modifications =
            modifyOperation.getRawModifications();
       for(LDAPModification modification : modifications)
@@ -438,9 +442,25 @@
             break;
         }
         buffer.append(attr.getAttributeType());
+        List<ASN1OctetString> values = attr.getValues();
+        if (! values.isEmpty())
+        {
+          Iterator<ASN1OctetString> iterator = values.iterator();
+          ASN1OctetString nextString = iterator.next();
+          encodeValue(nextString, buffer);
+          while (iterator.hasNext())
+          {
+            buffer.append(EOL);
+            buffer.append(attr.getAttributeType());
+            buffer.append(":");
+            nextString = iterator.next();
+            encodeValue(nextString, buffer);
+          }
+        }
+        buffer.append(EOL);
       }
 
-      buffer.append("\n");
+      buffer.append(EOL);
 
       auditLogger.log(DirectoryLogLevel.INFORMATIONAL, buffer.toString());
     }
@@ -484,29 +504,31 @@
       buffer.append("dn:");
       ByteString dnString = modifyDNOperation.getRawEntryDN();
       encodeValue(dnString, buffer);
-      buffer.append("\n");
-      buffer.append("changetype: modrdn\n");
+      buffer.append(EOL);
+      buffer.append("changetype: moddn");
+      buffer.append(EOL);
       buffer.append("newrdn: ");
       ByteString newrdnString = modifyDNOperation.getRawNewRDN();
       encodeValue(newrdnString, buffer);
-      buffer.append("\n");
+      buffer.append(EOL);
       buffer.append("deleteoldrdn: ");
       if(modifyDNOperation.deleteOldRDN())
       {
-        buffer.append("1\n");
+        buffer.append("1");
       } else
       {
-        buffer.append("0\n");
+        buffer.append("0");
       }
+      buffer.append(EOL);
       if(modifyDNOperation.getRawNewSuperior() != null)
       {
         buffer.append("newsuperior: ");
         ByteString newSuperior = modifyDNOperation.getRawNewSuperior();
         encodeValue(newSuperior, buffer);
-        buffer.append("\n");
+        buffer.append(EOL);
       }
 
-      buffer.append("\n");
+      buffer.append(EOL);
 
       auditLogger.log(DirectoryLogLevel.INFORMATIONAL, buffer.toString());
     }

--
Gitblit v1.10.0