Skip to content

Commit d85fe2e

Browse files
RANGER-5404 Modify the evtTime format to avoid format errors in ES
1 parent 0f980ba commit d85fe2e

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

agents-audit/dest-es/src/main/java/org/apache/ranger/audit/destination/ElasticSearchAuditDestination.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
import java.io.File;
5252
import java.io.IOException;
5353
import java.security.PrivilegedActionException;
54+
import java.text.DateFormat;
55+
import java.text.SimpleDateFormat;
5456
import java.util.ArrayList;
5557
import java.util.Collection;
5658
import java.util.Collections;
@@ -59,13 +61,19 @@
5961
import java.util.Locale;
6062
import java.util.Map;
6163
import java.util.Properties;
64+
import java.util.TimeZone;
6265
import java.util.concurrent.ThreadFactory;
6366
import java.util.concurrent.TimeUnit;
6467
import java.util.concurrent.atomic.AtomicLong;
6568
import java.util.concurrent.atomic.AtomicReference;
6669

6770
public class ElasticSearchAuditDestination extends AuditDestination {
6871
private static final Logger LOG = LoggerFactory.getLogger(ElasticSearchAuditDestination.class);
72+
private static final ThreadLocal<DateFormat> DATE_FORMAT = ThreadLocal.withInitial(() -> {
73+
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
74+
format.setTimeZone(TimeZone.getTimeZone("UTC"));
75+
return format;
76+
});
6977

7078
public static final String CONFIG_URLS = "urls";
7179
public static final String CONFIG_PORT = "port";
@@ -300,7 +308,12 @@ Map<String, Object> toDoc(AuthzAuditEvent auditEvent) {
300308
doc.put("resType", auditEvent.getResourceType());
301309
doc.put("reason", auditEvent.getResultReason());
302310
doc.put("action", auditEvent.getAction());
303-
doc.put("evtTime", auditEvent.getEventTime());
311+
Date eventTime = auditEvent.getEventTime();
312+
if (eventTime != null) {
313+
doc.put("evtTime", DATE_FORMAT.get().format(eventTime));
314+
} else {
315+
doc.put("evtTime", null);
316+
}
304317
doc.put("seq_num", auditEvent.getSeqNum());
305318
doc.put("event_count", auditEvent.getEventCount());
306319
doc.put("event_dur_ms", auditEvent.getEventDurationMS());

0 commit comments

Comments
 (0)