From 786c19842a8d2a392086deeefa5d985669158c8c Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Mon, 03 Oct 2016 09:49:30 +0000
Subject: [PATCH] OPENDJ-3335 Reuse request and response fields for publishing LDAP events
---
opendj-server-legacy/src/main/java/org/opends/server/loggers/OpenDJAccessEventBuilder.java | 90 ++++++++++++++++++++++++--------------------
1 files changed, 49 insertions(+), 41 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/loggers/OpenDJAccessEventBuilder.java b/opendj-server-legacy/src/main/java/org/opends/server/loggers/OpenDJAccessEventBuilder.java
index 47f2371..7b60554 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/loggers/OpenDJAccessEventBuilder.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/loggers/OpenDJAccessEventBuilder.java
@@ -26,6 +26,7 @@
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.json.JsonValue;
+import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.util.Reject;
import org.opends.server.core.ModifyDNOperation;
import org.opends.server.core.SearchOperation;
@@ -44,8 +45,8 @@
class OpenDJAccessAuditEventBuilder<T extends OpenDJAccessAuditEventBuilder<T>> extends AccessAuditEventBuilder<T>
{
- private static final String LDAP_VALUE_KEY = "ldap";
- private JsonValue ldapValue;
+ private JsonValue opRequest;
+ private JsonValue opResponse;
private OpenDJAccessAuditEventBuilder()
{
@@ -55,7 +56,7 @@
@SuppressWarnings("rawtypes")
public static <T> OpenDJAccessAuditEventBuilder<?> openDJAccessEvent()
{
- return new OpenDJAccessAuditEventBuilder();
+ return ((OpenDJAccessAuditEventBuilder<?>) new OpenDJAccessAuditEventBuilder()).eventName("DJ-LDAP");
}
public T ldapAdditionalItems(Operation op)
@@ -63,76 +64,73 @@
String items = getAdditionalItemsAsString(op);
if (!items.isEmpty())
{
- getLdapValue().put("items", items);
+ getOpResponse().put("additionalItems", items);
}
return self();
}
public T ldapAttr(String attr)
{
- getLdapValue().put("attr", attr);
+ getOpRequest().put("attr", attr);
return self();
}
public T ldapConnectionId(long id)
{
- getLdapValue().put("connId", id);
+ getOpRequest().put("connId", id);
return self();
}
public T ldapControls(Operation operation)
{
- JsonValue ldapValue = getLdapValue();
List<Control> requestControls = operation.getRequestControls();
if (!requestControls.isEmpty())
{
- ldapValue.put("reqControls", getControlsAsString(requestControls));
+ getOpRequest().put("controls", getControlsAsString(requestControls));
}
List<Control> responseControls = operation.getResponseControls();
if (!responseControls.isEmpty())
{
- ldapValue.put("respControls", getControlsAsString(responseControls));
+ getOpResponse().put("controls", getControlsAsString(responseControls));
}
return self();
}
public T ldapDn(String dn)
{
- getLdapValue().put("dn", dn);
+ getOpRequest().put("dn", dn);
return self();
}
public T ldapFailureMessage(String msg)
{
- getLdapValue().put("failureReason", msg);
+ getOpResponse().put("failureReason", msg);
return self();
}
public T ldapIds(Operation op)
{
- JsonValue ldapValue = getLdapValue();
- ldapValue.put("connId", op.getConnectionID());
- ldapValue.put("msgId", op.getMessageID());
+ getOpRequest().put("connId", op.getConnectionID());
+ getOpRequest().put("msgId", op.getMessageID());
return self();
}
public T ldapIdToAbandon(int id)
{
- getLdapValue().put("idToAbandon", id);
+ getOpRequest().put("idToAbandon", id);
return self();
}
public T ldapMaskedResultAndMessage(Operation operation)
{
- JsonValue ldapValue = getLdapValue();
if (operation.getMaskedResultCode() != null)
{
- ldapValue.put("maskedResult", operation.getMaskedResultCode().intValue());
+ getOpResponse().put("maskedResult", operation.getMaskedResultCode().intValue());
}
final LocalizableMessageBuilder maskedMsg = operation.getMaskedErrorMessage();
if (maskedMsg != null && maskedMsg.length() > 0)
{
- ldapValue.put("maskedMessage", maskedMsg.toString());
+ getOpResponse().put("maskedMessage", maskedMsg.toString());
}
return self();
}
@@ -141,66 +139,68 @@
{
if (msg != null)
{
- getLdapValue().put("message", msg.toString());
+ getOpRequest().put("message", msg.toString());
}
return self();
}
public T ldapName(String name)
{
- getLdapValue().put("name", name);
+ getOpRequest().put("name", name);
return self();
}
public T ldapModifyDN(ModifyDNOperation modifyDNOperation)
{
- JsonValue ldapValue = getLdapValue();
- ldapValue.put("newRDN", modifyDNOperation.getRawNewRDN().toString());
- ldapValue.put("newSup", modifyDNOperation.getRawNewSuperior().toString());
- ldapValue.put("deleteOldRDN", modifyDNOperation.deleteOldRDN());
+ getOpRequest().put("newRDN", modifyDNOperation.getRawNewRDN().toString());
+ final ByteString rawNewSuperior = modifyDNOperation.getRawNewSuperior();
+ if (rawNewSuperior != null)
+ {
+ getOpRequest().put("newSup", rawNewSuperior.toString());
+ }
+ getOpRequest().put("deleteOldRDN", modifyDNOperation.deleteOldRDN());
return self();
}
public T ldapNEntries(int nbEntries)
{
- getLdapValue().put("nentries", nbEntries);
+ getOpResponse().put("nentries", nbEntries);
return self();
}
public T ldapOid(String oid)
{
- getLdapValue().put("oid", oid);
+ getOpRequest().put("oid", oid);
return self();
}
public T ldapProtocolVersion(String version)
{
- getLdapValue().put("version", version);
+ getOpRequest().put("version", version);
return self();
}
public T ldapReason(DisconnectReason reason)
{
- getLdapValue().put("reason", reason.toString());
+ getOpResponse().put("reason", reason.toString());
return self();
}
public T ldapSearch(SearchOperation searchOperation)
{
- JsonValue ldapValue = getLdapValue();
// for search base, re-uses the "dn" field
- ldapValue.put("dn", searchOperation.getRawBaseDN().toString());
- ldapValue.put("scope", searchOperation.getScope().toString());
- ldapValue.put("filter", searchOperation.getRawFilter().toString());
+ getOpRequest().put("dn", searchOperation.getRawBaseDN().toString());
+ getOpRequest().put("scope", searchOperation.getScope().toString());
+ getOpRequest().put("filter", searchOperation.getRawFilter().toString());
final Set<String> attrs = searchOperation.getAttributes();
if ((attrs == null) || attrs.isEmpty())
{
- ldapValue.put("attrs", Arrays.asList("ALL"));
+ getOpRequest().put("attrs", Arrays.asList("ALL"));
}
else
{
- ldapValue.put("attrs", new ArrayList<>(attrs));
+ getOpRequest().put("attrs", new ArrayList<>(attrs));
}
return self();
}
@@ -209,14 +209,14 @@
{
if (operation.isSynchronizationOperation())
{
- getLdapValue().put("opType", "sync");
+ getOpRequest().put("opType", "sync");
}
return self();
}
public T ldapAuthType(String type)
{
- getLdapValue().put("authType", type);
+ getOpRequest().put("authType", type);
return self();
}
@@ -248,13 +248,21 @@
return items.toString();
}
- private JsonValue getLdapValue()
+ private JsonValue getOpRequest()
{
- if (ldapValue == null)
+ if (opRequest == null)
{
- jsonValue.put(LDAP_VALUE_KEY, object());
- ldapValue = jsonValue.get(LDAP_VALUE_KEY);
+ opRequest = jsonValue.get("request");
}
- return ldapValue;
+ return opRequest;
+ }
+
+ private JsonValue getOpResponse()
+ {
+ if (opResponse == null)
+ {
+ opResponse = jsonValue.get("response");
+ }
+ return opResponse;
}
}
--
Gitblit v1.10.0