From 89387857b2719817fb039c2e685843d6e985e385 Mon Sep 17 00:00:00 2001
From: Tucker Siegel <tgsiegel@terpmail.umd.edu>
Date: Wed, 12 Apr 2023 17:18:37 -0400
Subject: [PATCH] add ability to get ip addresses

---
 .../umd/dawn/common/interceptor/RequestInterceptor.java    | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java b/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java
index c1ee638..4e460db 100644
--- a/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java
+++ b/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java
@@ -8,8 +8,12 @@ import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import java.util.Enumeration;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.UUID;
+import java.util.stream.Collectors;
+
 import lombok.extern.log4j.Log4j2;
 import org.apache.logging.log4j.Level;
 import org.slf4j.MDC;
@@ -108,6 +112,8 @@ public class RequestInterceptor implements HandlerInterceptor {
             userId = claims.getUserId();
         }
 
+        List<String> ips = List.of(Optional.of(request.getHeader("X-FORWARDED-FOR")).orElse("").split(",")).stream().map(x -> x.trim()).collect(Collectors.toList());
+
         RequestLog requestLog = RequestLog.builder()
                 .path(path)
                 .method(request.getMethod())
@@ -117,6 +123,7 @@ public class RequestInterceptor implements HandlerInterceptor {
                 .duration(executeTime)
                 .userAgent(userAgentService.parse(headers))
                 .userId(userId)
+                .ips(ips)
                 .build();
 
         log.log(Level.forName("REQUEST", 10), requestLog);
-- 
GitLab