From 6b6a01a7e7063963b3df97c51586a2cd67aeab1d Mon Sep 17 00:00:00 2001 From: nklmish Date: Tue, 12 Dec 2017 00:41:45 +0100 Subject: [PATCH] Handle null Principal in AuditEvent See gh-11320 --- .../springframework/boot/actuate/audit/AuditEvent.java | 4 ++-- .../boot/actuate/audit/AuditEventTests.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java index ae96349f10e..f8cda87f7ee 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java @@ -41,6 +41,7 @@ import org.springframework.util.Assert; * (wrappers for AuditEvent). * * @author Dave Syer + * @author Nakul Mishra * @see AuditEventRepository */ @JsonInclude(Include.NON_EMPTY) @@ -85,10 +86,9 @@ public class AuditEvent implements Serializable { public AuditEvent(Date timestamp, String principal, String type, Map data) { Assert.notNull(timestamp, "Timestamp must not be null"); - Assert.notNull(principal, "Principal must not be null"); Assert.notNull(type, "Type must not be null"); this.timestamp = timestamp; - this.principal = principal; + this.principal = principal != null ? principal : ""; this.type = type; this.data = Collections.unmodifiableMap(data); } diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/audit/AuditEventTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/audit/AuditEventTests.java index cbe594722f4..3d46a901065 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/audit/AuditEventTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/audit/AuditEventTests.java @@ -32,6 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Dave Syer * @author Vedran Pavic + * @author Nakul Mishra */ public class AuditEventTests { @@ -64,10 +65,9 @@ public class AuditEventTests { } @Test - public void nullPrincipal() throws Exception { - this.thrown.expect(IllegalArgumentException.class); - this.thrown.expectMessage("Principal must not be null"); - new AuditEvent(null, "UNKNOWN", Collections.singletonMap("a", (Object) "b")); + public void nullPrincipal() { + AuditEvent auditEvent = new AuditEvent(null, "UNKNOWN", Collections.singletonMap("a", (Object) "b")); + assertThat(auditEvent.getPrincipal()).isEmpty(); } @Test