You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2018/09/22 06:23:06 UTC
[1/6] logging-log4j-audit git commit: [LOG4J2-2417] fix access of
optional annotations
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 <an...@arnia.ro>
Authored: Mon Sep 17 14:52:45 2018 +0300
Committer: Andrei Ivanov <an...@arnia.ro>
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 {
+}
[2/6] logging-log4j-audit git commit: [LOG4J2-2417] reuse maxLength
extraction routine
Posted by rg...@apache.org.
[LOG4J2-2417] reuse maxLength extraction routine
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/3e3bf9d3
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/3e3bf9d3
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/3e3bf9d3
Branch: refs/heads/master
Commit: 3e3bf9d34f5468d474924c2a07e8865893831347
Parents: 882d45a
Author: Andrei Ivanov <an...@arnia.ro>
Authored: Mon Sep 17 14:57:59 2018 +0300
Committer: Andrei Ivanov <an...@arnia.ro>
Committed: Mon Sep 17 14:57:59 2018 +0300
----------------------------------------------------------------------
.../org/apache/logging/log4j/audit/LogEventFactory.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/3e3bf9d3/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 1b2f9ac..d275335 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,8 +92,7 @@ public class LogEventFactory {
Class<?>[] interfaces = new Class<?>[] { intrface };
String eventId = NamingUtils.lowerFirst(intrface.getSimpleName());
- MaxLength maxLength = intrface.getAnnotation(MaxLength.class);
- int msgLength = maxLength == null ? DEFAULT_MAX_LENGTH : maxLength.value();
+ int msgLength = getMaxLength(intrface);
AuditMessage msg = new AuditMessage(eventId, msgLength);
AuditEvent audit = (AuditEvent) Proxy.newProxyInstance(intrface
.getClassLoader(), interfaces, new AuditProxy(msg, intrface));
@@ -101,6 +100,11 @@ public class LogEventFactory {
return (T) audit;
}
+ private static <T> int getMaxLength(Class<T> intrface) {
+ MaxLength maxLength = intrface.getAnnotation(MaxLength.class);
+ return maxLength == null ? DEFAULT_MAX_LENGTH : maxLength.value();
+ }
+
/**
*
* This method is used to construct and AuditMessage from a set of properties and the Event interface
@@ -124,7 +128,7 @@ public class LogEventFactory {
validateContextConstraints(intrface, errors);
String eventId = NamingUtils.lowerFirst(intrface.getSimpleName());
- int maxLength = intrface.getAnnotation(MaxLength.class).value();
+ int maxLength = getMaxLength(intrface);
AuditMessage msg = new AuditMessage(eventId, maxLength);
List<Property> props = getProperties(intrface);
Map<String, Property> propertyMap = new HashMap<>();
[4/6] logging-log4j-audit git commit: [LOG4J2-2420] allow events
without attributes
Posted by rg...@apache.org.
[LOG4J2-2420] allow events without attributes
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/d98904d9
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/d98904d9
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/d98904d9
Branch: refs/heads/master
Commit: d98904d92329b7ffe2da5e59830d09200528c875
Parents: 02529bb
Author: Andrei Ivanov <an...@arnia.ro>
Authored: Mon Sep 17 15:29:04 2018 +0300
Committer: Andrei Ivanov <an...@arnia.ro>
Committed: Mon Sep 17 15:29:04 2018 +0300
----------------------------------------------------------------------
.../log4j/audit/AbstractEventLogger.java | 9 +++--
.../log4j/audit/catalog/CatalogManagerImpl.java | 33 ++++++++++-------
.../logging/log4j/audit/AuditLoggerTest.java | 38 ++++++++++++++------
.../src/test/resources/basicCatalog.json | 5 +++
4 files changed, 60 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/d98904d9/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
----------------------------------------------------------------------
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
index da2254a..cda7207 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
@@ -32,7 +32,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
-import static org.apache.logging.log4j.catalog.api.constant.Constants.*;
+import static java.util.Collections.*;
/**
* This class is used to log events generated remotely.
@@ -109,10 +109,15 @@ public abstract class AbstractEventLogger {
AuditExceptionHandler exceptionHandler) {
AuditMessage msg = new AuditMessage(eventName, maxLength);
+ if (attributes == null) {
+ attributes = emptyMap();
+ }
+
StringBuilder missingAttributes = new StringBuilder();
StringBuilder errors = new StringBuilder();
- for (EventAttribute eventAttribute : event.getAttributes()) {
+ List<EventAttribute> eventAttributes = event.getAttributes() == null ? emptyList() : event.getAttributes();
+ for (EventAttribute eventAttribute : eventAttributes) {
Attribute attr = catalogManager.getAttribute(eventAttribute.getName(), event.getCatalogId());
if ((!attr.isRequestContext() && (attr.isRequired()) ||
(eventAttribute.isRequired() != null && eventAttribute.isRequired()))) {
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/d98904d9/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/catalog/CatalogManagerImpl.java
----------------------------------------------------------------------
diff --git a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/catalog/CatalogManagerImpl.java b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/catalog/CatalogManagerImpl.java
index 538d4ca..1cd9831 100644
--- a/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/catalog/CatalogManagerImpl.java
+++ b/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/catalog/CatalogManagerImpl.java
@@ -36,6 +36,7 @@ import org.apache.logging.log4j.catalog.api.Event;
import org.apache.logging.log4j.catalog.api.CatalogReader;
import org.apache.logging.log4j.catalog.api.EventAttribute;
+import static java.util.Collections.emptyList;
import static org.apache.logging.log4j.catalog.api.constant.Constants.DEFAULT_CATALOG;
/**
@@ -83,11 +84,12 @@ public class CatalogManagerImpl implements CatalogManager {
public Map<String, Attribute> getAttributes(String eventName, String catalogId) {
Event event = getEvent(eventName, catalogId);
if (event == null) {
- logger.warn("No event named {} counld be found in catalog {}", eventName, catalogId);
+ logger.warn("The event named {} could not be found in catalog {}", eventName, catalogId);
return null;
}
- Map<String, Attribute> attributes = new HashMap<>(event.getAttributes().size());
- for (EventAttribute eventAttribute : event.getAttributes()) {
+ List<EventAttribute> eventAttributes = event.getAttributes() == null ? emptyList() : event.getAttributes();
+ Map<String, Attribute> attributes = new HashMap<>(eventAttributes.size());
+ for (EventAttribute eventAttribute : eventAttributes) {
Attribute attr = getAttribute(eventAttribute.getName(), event.getCatalogId());
if (attr != null) {
attributes.put(attr.getName(), attr);
@@ -128,22 +130,27 @@ public class CatalogManagerImpl implements CatalogManager {
}
private Map<String, Map<String, CatalogInfo>> initializeData(CatalogReader catalogReader) throws Exception {
- String catalog = catalogReader.readCatalog();
JsonFactory factory = new JsonFactory();
factory.enable(JsonParser.Feature.ALLOW_COMMENTS);
ObjectMapper mapper = new ObjectMapper(factory);
+
+ String catalog = catalogReader.readCatalog();
catalogData = mapper.readValue(catalog, CatalogData.class);
- for (Attribute attr : catalogData.getAttributes()) {
- if (attr.isRequestContext()) {
- requestContextAttributes.put(attr.getName(), attr);
- }
- Map<String, Attribute> attrMap = attributeMap.get(attr.getCatalogId());
- if (attrMap == null) {
- attrMap = new HashMap<>();
- attributeMap.put(attr.getCatalogId(), attrMap);
+
+ if (catalogData.getAttributes() != null) {
+ for (Attribute attr : catalogData.getAttributes()) {
+ if (attr.isRequestContext()) {
+ requestContextAttributes.put(attr.getName(), attr);
+ }
+ Map<String, Attribute> attrMap = attributeMap.get(attr.getCatalogId());
+ if (attrMap == null) {
+ attrMap = new HashMap<>();
+ attributeMap.put(attr.getCatalogId(), attrMap);
+ }
+ attrMap.put(attr.getName(), attr);
}
- attrMap.put(attr.getName(), attr);
}
+
Map<String, Map<String, CatalogInfo>> map = new HashMap<>();
map.put(DEFAULT_CATALOG, new HashMap<>());
for (Event event : catalogData.getEvents()) {
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/d98904d9/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
----------------------------------------------------------------------
diff --git a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
index abe6eb8..b497740 100644
--- a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
+++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
@@ -23,6 +23,8 @@ import org.apache.logging.log4j.audit.catalog.CatalogManagerImpl;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.audit.catalog.StringCatalogReader;
import org.apache.logging.log4j.audit.exception.AuditException;
+import org.apache.logging.log4j.catalog.api.CatalogReader;
+import org.apache.logging.log4j.catalog.api.dao.ClassPathCatalogReader;
import org.apache.logging.log4j.core.Appender;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.config.Configuration;
@@ -31,6 +33,7 @@ import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -44,18 +47,15 @@ import static org.junit.Assert.fail;
*/
public class AuditLoggerTest {
- private static AbstractEventLogger auditLogger;
-
- private static CatalogManager catalogManager;
-
+ private static CatalogReader catalogReader;
private static LoggerContext ctx;
private static ListAppender app;
+ private AbstractEventLogger auditLogger;
+
@BeforeClass
public static void setupClass() throws Exception {
- catalogManager = new CatalogManagerImpl(new StringCatalogReader());
- auditLogger = new AuditLogger();
- auditLogger.setCatalogManager(catalogManager);
+ catalogReader = new StringCatalogReader();
ctx = (LoggerContext) LogManager.getContext(false);
Configuration config = ctx.getConfiguration();
for (Map.Entry<String, Appender> entry : config.getAppenders().entrySet()) {
@@ -67,13 +67,22 @@ public class AuditLoggerTest {
assertNotNull("No Appender", app);
}
+ private AbstractEventLogger buildAuditLogger(CatalogReader catalogReader) throws Exception {
+ CatalogManager catalogManager = new CatalogManagerImpl(catalogReader);
+ AuditLogger auditLogger = new AuditLogger();
+ auditLogger.setCatalogManager(catalogManager);
+ return auditLogger;
+ }
+
@Before
public void before() {
app.clear();
}
@Test
- public void testAuditLogger() {
+ public void testAuditLogger() throws Exception {
+ auditLogger = buildAuditLogger(catalogReader);
+
ThreadContext.put("companyId", "12345");
ThreadContext.put("ipAddress", "127.0.0.1");
ThreadContext.put("environment", "dev");
@@ -100,7 +109,9 @@ public class AuditLoggerTest {
}
@Test(expected = AuditException.class)
- public void testBadAttribute() {
+ public void testBadAttribute() throws Exception {
+ auditLogger = buildAuditLogger(catalogReader);
+
ThreadContext.put("companyId", "12345");
ThreadContext.put("ipAddress", "127.0.0.1");
ThreadContext.put("environment", "dev");
@@ -112,4 +123,11 @@ public class AuditLoggerTest {
properties.put("amount", "111.55");
auditLogger.logEvent("transfer", properties);
}
-}
+
+ @Test
+ public void testAuditLoggerWithBasicCatalog() throws Exception {
+ auditLogger = buildAuditLogger(new ClassPathCatalogReader(Collections.singletonMap("catalogFile", "basicCatalog.json")));
+
+ auditLogger.logEvent("login", null);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/d98904d9/log4j-audit/log4j-audit-api/src/test/resources/basicCatalog.json
----------------------------------------------------------------------
diff --git a/log4j-audit/log4j-audit-api/src/test/resources/basicCatalog.json b/log4j-audit/log4j-audit-api/src/test/resources/basicCatalog.json
new file mode 100644
index 0000000..297a36b
--- /dev/null
+++ b/log4j-audit/log4j-audit-api/src/test/resources/basicCatalog.json
@@ -0,0 +1,5 @@
+{
+ "events" : [ {
+ "name" : "login"
+ } ]
+}
\ No newline at end of file
[3/6] logging-log4j-audit git commit: [LOG4J2-2417] handle null
properties
Posted by rg...@apache.org.
[LOG4J2-2417] handle null properties
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/02529bb7
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/02529bb7
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/02529bb7
Branch: refs/heads/master
Commit: 02529bb74a58b87643867c2df7731b402f9f5f86
Parents: 3e3bf9d
Author: Andrei Ivanov <an...@arnia.ro>
Authored: Mon Sep 17 15:10:06 2018 +0300
Committer: Andrei Ivanov <an...@arnia.ro>
Committed: Mon Sep 17 15:10:06 2018 +0300
----------------------------------------------------------------------
.../logging/log4j/audit/LogEventFactory.java | 11 +++++-----
.../apache/logging/log4j/audit/LoginTest.java | 21 ++++++++++++++++++++
2 files changed, 27 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/02529bb7/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 d275335..9617956 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
@@ -20,10 +20,7 @@ import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -130,10 +127,14 @@ public class LogEventFactory {
String eventId = NamingUtils.lowerFirst(intrface.getSimpleName());
int maxLength = getMaxLength(intrface);
AuditMessage msg = new AuditMessage(eventId, maxLength);
+
+ if (properties == null) {
+ properties = Collections.emptyMap();
+ }
List<Property> props = getProperties(intrface);
Map<String, Property> propertyMap = new HashMap<>();
- for (Property property : props ) {
+ for (Property property : props) {
propertyMap.put(property.name, property);
if (property.isRequired && !properties.containsKey(property.name)) {
if (errors.length() > 0) {
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/02529bb7/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
index c40a1cd..190ccd6 100644
--- 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
@@ -3,11 +3,32 @@ package org.apache.logging.log4j.audit;
import org.apache.logging.log4j.audit.event.Login;
import org.junit.Test;
+import java.util.Collections;
+import java.util.List;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
public class LoginTest extends BaseEventTest {
@Test
public void testAuditClass() {
Login event = LogEventFactory.getEvent(Login.class);
event.logEvent();
+
+ event.setCompletionStatus("Success");
+
+ event.logEvent();
+
+ List<String> msgs = app.getMessages();
+ assertNotNull("No messages", msgs);
+ assertTrue("No messages", msgs.size() == 2);
+ }
+
+ @Test
+ public void testAuditLog() {
+ LogEventFactory.logEvent(Login.class, null);
+
+ LogEventFactory.logEvent(Login.class, Collections.emptyMap());
}
}
\ No newline at end of file
[5/6] logging-log4j-audit git commit: Closes #7
Posted by rg...@apache.org.
Closes #7
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/7599c8a2
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/7599c8a2
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/7599c8a2
Branch: refs/heads/master
Commit: 7599c8a26fd1d2d02294673908f9f5e41806d72c
Parents: 83b9afa d98904d
Author: Ralph Goers <rg...@apache.org>
Authored: Fri Sep 21 20:20:38 2018 -1000
Committer: Ralph Goers <rg...@apache.org>
Committed: Fri Sep 21 20:20:38 2018 -1000
----------------------------------------------------------------------
.../log4j/audit/AbstractEventLogger.java | 9 ++++-
.../logging/log4j/audit/LogEventFactory.java | 25 +++++++++----
.../log4j/audit/catalog/CatalogManagerImpl.java | 33 ++++++++++-------
.../logging/log4j/audit/AuditLoggerTest.java | 36 +++++++++++++-----
.../logging/log4j/audit/BaseEventTest.java | 39 ++++++++++++++++++++
.../apache/logging/log4j/audit/LoginTest.java | 34 +++++++++++++++++
.../logging/log4j/audit/TransferTest.java | 24 +-----------
.../apache/logging/log4j/audit/event/Login.java | 6 +++
.../src/test/resources/basicCatalog.json | 5 +++
9 files changed, 157 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7599c8a2/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/AbstractEventLogger.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7599c8a2/log4j-audit/log4j-audit-api/src/main/java/org/apache/logging/log4j/audit/LogEventFactory.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/7599c8a2/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
----------------------------------------------------------------------
diff --cc log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
index 77ee464,b497740..3cfca75
--- a/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
+++ b/log4j-audit/log4j-audit-api/src/test/java/org/apache/logging/log4j/audit/AuditLoggerTest.java
@@@ -111,6 -121,13 +122,13 @@@ public class AuditLoggerTest
Map<String, String> properties = new HashMap<String, String>();
properties.put("toAccount", "123456");
properties.put("amount", "111.55");
- auditLogger.logEvent("transfer", properties);
+ auditLogger.logEvent("Transfer", properties);
}
+
+ @Test
+ public void testAuditLoggerWithBasicCatalog() throws Exception {
+ auditLogger = buildAuditLogger(new ClassPathCatalogReader(Collections.singletonMap("catalogFile", "basicCatalog.json")));
+
+ auditLogger.logEvent("login", null);
+ }
-}
+}
[6/6] logging-log4j-audit git commit: LOG4J2-2417 - Better handling
of optional properties
Posted by rg...@apache.org.
LOG4J2-2417 - Better handling of optional properties
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/07e5419f
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/tree/07e5419f
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/diff/07e5419f
Branch: refs/heads/master
Commit: 07e5419f06a30541ab83181dd0712583e9fd51d3
Parents: 7599c8a
Author: Ralph Goers <rg...@apache.org>
Authored: Fri Sep 21 20:22:59 2018 -1000
Committer: Ralph Goers <rg...@apache.org>
Committed: Fri Sep 21 20:22:59 2018 -1000
----------------------------------------------------------------------
src/changes/changes.xml | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j-audit/blob/07e5419f/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index b3e265a..59ad26b 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -31,6 +31,9 @@
- "remove" - Removed
-->
<release version="1.0.1" date="YYYY-MM-DD" description="Release 1.0.1">
+ <action issue="LOG4J2-2417" dev="rgoers" type="fix" due-to="Andrei Ivanov">
+ Better handling of optional properties.
+ </action>
<action issue="LOG4J2-2420" dev="rgoers" type="fix" due-to="Andrei Ivanov">
RequestContextFilter logging cleanup.
</action>