From 12de4de1e650e2bb98ecfbdae723db0fd7537b7b Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 01 May 2014 00:25:45 +0000
Subject: [PATCH] Fix various bugs in access log filtering:
---
opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java | 50 ++++++++++++++++++++++++++------------------------
1 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
index ef02824..2aa4c46 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
@@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2011-2014 ForgeRock AS
+ * Copyright 2011-2014 ForgeRock AS
*/
package org.opends.server.loggers;
@@ -68,7 +68,7 @@
/**
* Criteria based filter.
*/
- private static final class CriteriaFilter implements Filter
+ static final class CriteriaFilter implements Filter
{
private final AccessLogFilteringCriteriaCfg cfg;
private final boolean logConnectRecords;
@@ -96,7 +96,7 @@
* @throws ConfigException
* If the configuration cannot be parsed.
*/
- private CriteriaFilter(final AccessLogFilteringCriteriaCfg cfg)
+ CriteriaFilter(final AccessLogFilteringCriteriaCfg cfg)
throws ConfigException
{
this.cfg = cfg;
@@ -470,24 +470,30 @@
private boolean filterDN(final DN dn, PatternDN[] notEqualTo,
PatternDN[] equalTo)
{
- for (final PatternDN pattern : notEqualTo)
+ if (notEqualTo.length > 0)
{
- if (pattern.matchesDN(dn))
+ for (final PatternDN pattern : notEqualTo)
{
- return false;
+ if (pattern.matchesDN(dn))
+ {
+ return false;
+ }
}
}
- for (final PatternDN pattern : equalTo)
+ if (equalTo.length > 0)
{
- if (pattern.matchesDN(dn))
+ for (final PatternDN pattern : equalTo)
{
- return true;
+ if (pattern.matchesDN(dn))
+ {
+ return true;
+ }
}
+ return false;
}
- // The DN did not match.
- return false;
+ return true;
}
@@ -497,26 +503,22 @@
// Check response code.
final int resultCode = operation.getResultCode().intValue();
- if (!cfg.getResponseResultCodeNotEqualTo().isEmpty())
+ if (!cfg.getResponseResultCodeNotEqualTo().isEmpty()
+ && cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
{
- if (cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
- {
- return false;
- }
+ return false;
}
- if (!cfg.getResponseResultCodeEqualTo().isEmpty())
+ if (!cfg.getResponseResultCodeEqualTo().isEmpty()
+ && !cfg.getResponseResultCodeEqualTo().contains(resultCode))
{
- if (!cfg.getResponseResultCodeNotEqualTo().contains(resultCode))
- {
- return false;
- }
+ return false;
}
// Check etime.
final long etime = operation.getProcessingTime();
- final Integer etimeGT = cfg.getResponseEtimeLessThan();
+ final Integer etimeGT = cfg.getResponseEtimeGreaterThan();
if (etimeGT != null)
{
if (etime <= ((long) etimeGT))
@@ -682,10 +684,10 @@
logger.traceException(e);
}
}
+ return false;
}
- // The user entry did not match.
- return false;
+ return true;
}
}
--
Gitblit v1.10.0