Repository: logging-log4j-audit Updated Branches: refs/heads/master 83b9afa43 -> 07e5419f0
[LOG4J2-2417] fix access of optional annotations Project: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/commit/882d45a0 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/882d45a0 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/882d45a0 Branch: refs/heads/master Commit: 882d45a05b51d24a40fda2659b0c02d877e90f24 Parents: c2bfa53 Author: Andrei Ivanov <[email protected]> Authored: Mon Sep 17 14:52:45 2018 +0300 Committer: Andrei Ivanov <[email protected]> Committed: Mon Sep 17 14:52:45 2018 +0300 ---------------------------------------------------------------------- .../logging/log4j/audit/LogEventFactory.java | 8 +++- .../logging/log4j/audit/BaseEventTest.java | 39 ++++++++++++++++++++ .../apache/logging/log4j/audit/LoginTest.java | 13 +++++++ .../logging/log4j/audit/TransferTest.java | 24 +----------- .../apache/logging/log4j/audit/event/Login.java | 6 +++ 5 files changed, 66 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java ---------------------------------------------------------------------- diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java index 85f2692..1b2f9ac 100644 --- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java +++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java @@ -92,7 +92,8 @@ public class LogEventFactory { Class<?>[] interfaces = new Class<?>[] { intrface }; String eventId = NamingUtils.lowerFirst(intrface.getSimpleName()); - int msgLength = intrface.getAnnotation(MaxLength.class).value(); + MaxLength maxLength = intrface.getAnnotation(MaxLength.class); + int msgLength = maxLength == null ? DEFAULT_MAX_LENGTH : maxLength.value(); AuditMessage msg = new AuditMessage(eventId, msgLength); AuditEvent audit = (AuditEvent) Proxy.newProxyInstance(intrface .getClassLoader(), interfaces, new AuditProxy(msg, intrface)); @@ -382,6 +383,11 @@ public class LogEventFactory { } private static void validateContextConstraint(RequestContext constraint, StringBuilder errors) { + if (constraint == null) { + // the request context is not mandatory + return; + } + String value = ThreadContext.get(constraint.key()); if (value != null) { validateConstraints(true, constraint.constraints(), constraint.key(), value, errors); http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java ---------------------------------------------------------------------- diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java new file mode 100644 index 0000000..01aca3e --- /dev/null +++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/BaseEventTest.java @@ -0,0 +1,39 @@ +package org.apache.logging.log4j.audit; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.ThreadContext; +import org.apache.logging.log4j.core.Appender; +import org.apache.logging.log4j.core.LoggerContext; +import org.apache.logging.log4j.core.config.Configuration; +import org.apache.logging.log4j.test.appender.ListAppender; +import org.junit.Before; +import org.junit.BeforeClass; + +import java.util.Map; + +import static org.junit.Assert.assertNotNull; + +public class BaseEventTest { + + protected static LoggerContext ctx; + protected static ListAppender app; + + @BeforeClass + public static void setupClass() throws Exception { + ctx = (LoggerContext) LogManager.getContext(false); + Configuration config = ctx.getConfiguration(); + for (Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) { + if (entry.getKey().equals("List")) { + app = (ListAppender) entry.getValue(); + break; + } + } + assertNotNull("No Appender", app); + } + + @Before + public void before() { + app.clear(); + ThreadContext.clearMap(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java ---------------------------------------------------------------------- diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java new file mode 100644 index 0000000..c40a1cd --- /dev/null +++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/LoginTest.java @@ -0,0 +1,13 @@ +package org.apache.logging.log4j.audit; + +import org.apache.logging.log4j.audit.event.Login; +import org.junit.Test; + +public class LoginTest extends BaseEventTest { + @Test + public void testAuditClass() { + Login event = LogEventFactory.getEvent(Login.class); + + event.logEvent(); + } +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java ---------------------------------------------------------------------- diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java index 7c5ce5e..716bb58 100644 --- a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java +++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/TransferTest.java @@ -40,29 +40,7 @@ import static org.junit.Assert.fail; /** * */ -public class TransferTest { - - private static LoggerContext ctx; - private static ListAppender app; - - @BeforeClass - public static void setupClass() throws Exception { - ctx = (LoggerContext) LogManager.getContext(false); - Configuration config = ctx.getConfiguration(); - for (Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) { - if (entry.getKey().equals("List")) { - app = (ListAppender) entry.getValue(); - break; - } - } - assertNotNull("No Appender", app); - } - - @Before - public void before() { - app.clear(); - ThreadContext.clearMap(); - } +public class TransferTest extends BaseEventTest { @Test(expected = ConstraintValidationException.class) public void testValidationFailure() { http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/882d45a0/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java ---------------------------------------------------------------------- diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java new file mode 100644 index 0000000..8a641f4 --- /dev/null +++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/event/Login.java @@ -0,0 +1,6 @@ +package org.apache.logging.log4j.audit.event; + +import org.apache.logging.log4j.audit.AuditEvent; + +public interface Login extends AuditEvent { +}
