From 7caa69d91658084c7e25a73e272fac30c944ecda Mon Sep 17 00:00:00 2001
From: Tucker Siegel <tgsiegel@terpmail.umd.edu>
Date: Wed, 12 Apr 2023 14:21:29 -0400
Subject: [PATCH] update and clean

---
 .../annotations/RoleRestrictionAspect.java    |  1 -
 .../common/interceptor/JWTInterceptor.java    |  6 +++---
 .../interceptor/RequestInterceptor.java       | 10 ++++++---
 .../umd/dawn/common/logging/RequestLog.java   |  3 +--
 .../edu/umd/dawn/common/models/UserAgent.java |  5 +++--
 .../common/services/UserAgentService.java     | 21 +++++++------------
 .../DawnHttpServletRequestWrapper.java        |  7 ++++---
 7 files changed, 26 insertions(+), 27 deletions(-)

diff --git a/src/main/java/edu/umd/dawn/common/annotations/RoleRestrictionAspect.java b/src/main/java/edu/umd/dawn/common/annotations/RoleRestrictionAspect.java
index 2783618..a562b5a 100644
--- a/src/main/java/edu/umd/dawn/common/annotations/RoleRestrictionAspect.java
+++ b/src/main/java/edu/umd/dawn/common/annotations/RoleRestrictionAspect.java
@@ -6,7 +6,6 @@ import edu.umd.dawn.common.exceptions.DawnException;
 import edu.umd.dawn.common.jwt.Claims;
 import edu.umd.dawn.common.services.UserAuthService;
 import jakarta.servlet.http.HttpServletRequest;
-import lombok.RequiredArgsConstructor;
 import lombok.extern.log4j.Log4j2;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.Around;
diff --git a/src/main/java/edu/umd/dawn/common/interceptor/JWTInterceptor.java b/src/main/java/edu/umd/dawn/common/interceptor/JWTInterceptor.java
index a202269..1e1f5f4 100644
--- a/src/main/java/edu/umd/dawn/common/interceptor/JWTInterceptor.java
+++ b/src/main/java/edu/umd/dawn/common/interceptor/JWTInterceptor.java
@@ -5,7 +5,6 @@ import edu.umd.dawn.common.jwt.JWTUtil;
 import jakarta.servlet.http.HttpServletRequest;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.extern.log4j.Log4j2;
-
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.HandlerInterceptor;
@@ -30,13 +29,14 @@ public class JWTInterceptor implements HandlerInterceptor {
     @Value("${config.accessSecret:empty}")
     private String accessSecret;
 
-
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
             throws Exception {
 
         if (accessSecret.equals("empty")) {
-            log.warn("This service has not been provided the configuration value for `config.accessSecret` in the application.properties configuration. Since it uses the JWTInterceptor, this is a required value for proper functionality.");
+            log.warn("This service has not been provided the configuration value for `config.accessSecret` in the"
+                    + " application.properties configuration. Since it uses the JWTInterceptor, this is a required"
+                    + " value for proper functionality.");
         }
 
         if (!local) {
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 bfcad47..c1ee638 100644
--- a/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java
+++ b/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java
@@ -24,10 +24,10 @@ import org.springframework.web.servlet.HandlerMapping;
 public class RequestInterceptor implements HandlerInterceptor {
 
     private String TRACE_HEADER = "X-Request-Id";
-    
+
     @Value("${config.serviceName:dawn-service}")
     private String serviceName;
-    
+
     @Value("${config.accessSecret:empty}")
     private String accessSecret;
 
@@ -103,6 +103,10 @@ public class RequestInterceptor implements HandlerInterceptor {
         Map<String, String> headers = getRequestHeaders(request);
 
         Claims claims = new DawnHttpServletRequestWrapper(request, accessSecret).getClaims();
+        String userId = "";
+        if (claims != null) {
+            userId = claims.getUserId();
+        }
 
         RequestLog requestLog = RequestLog.builder()
                 .path(path)
@@ -112,7 +116,7 @@ public class RequestInterceptor implements HandlerInterceptor {
                 .parameters(getParemeters(request))
                 .duration(executeTime)
                 .userAgent(userAgentService.parse(headers))
-                .userId(claims.getUserId())
+                .userId(userId)
                 .build();
 
         log.log(Level.forName("REQUEST", 10), requestLog);
diff --git a/src/main/java/edu/umd/dawn/common/logging/RequestLog.java b/src/main/java/edu/umd/dawn/common/logging/RequestLog.java
index 60088d0..0a85c31 100644
--- a/src/main/java/edu/umd/dawn/common/logging/RequestLog.java
+++ b/src/main/java/edu/umd/dawn/common/logging/RequestLog.java
@@ -1,9 +1,8 @@
 package edu.umd.dawn.common.logging;
 
+import edu.umd.dawn.common.models.UserAgent;
 import java.util.List;
 import java.util.Map;
-
-import edu.umd.dawn.common.models.UserAgent;
 import lombok.Builder;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/src/main/java/edu/umd/dawn/common/models/UserAgent.java b/src/main/java/edu/umd/dawn/common/models/UserAgent.java
index 278b71e..d3d8d48 100644
--- a/src/main/java/edu/umd/dawn/common/models/UserAgent.java
+++ b/src/main/java/edu/umd/dawn/common/models/UserAgent.java
@@ -7,13 +7,15 @@ import lombok.Data;
 @Builder
 public class UserAgent {
 
-
     @Builder.Default
     private boolean bot = false;
+
     @Builder.Default
     private boolean tablet = false;
+
     @Builder.Default
     private boolean mobile = false;
+
     @Builder.Default
     private boolean desktop = false;
 
@@ -22,5 +24,4 @@ public class UserAgent {
     private String osVersion;
     private String name;
     private String version;
-    
 }
diff --git a/src/main/java/edu/umd/dawn/common/services/UserAgentService.java b/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
index 65c950f..345ed5a 100644
--- a/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
+++ b/src/main/java/edu/umd/dawn/common/services/UserAgentService.java
@@ -1,24 +1,20 @@
 package edu.umd.dawn.common.services;
 
-import org.springframework.stereotype.Service;
+import static nl.basjes.parse.useragent.classify.DeviceClass.PHONE;
+import static nl.basjes.parse.useragent.classify.DeviceClass.TABLET;
 
 import edu.umd.dawn.common.models.UserAgent.UserAgentBuilder;
+import java.util.Map;
 import nl.basjes.parse.useragent.UserAgent;
 import nl.basjes.parse.useragent.UserAgentAnalyzer;
-
-import static nl.basjes.parse.useragent.classify.DeviceClass.TABLET;
-
-import java.util.Map;
-
-import static nl.basjes.parse.useragent.classify.DeviceClass.PHONE;;
+import org.springframework.stereotype.Service;
 
 @Service
 public class UserAgentService {
-    private UserAgentAnalyzer uaa = UserAgentAnalyzer
-    .newBuilder()
-    .hideMatcherLoadStats()
-    .withCache(10000)
-    .build();
+    private UserAgentAnalyzer uaa = UserAgentAnalyzer.newBuilder()
+            .hideMatcherLoadStats()
+            .withCache(10000)
+            .build();
 
     private UserAgentBuilder setDeviceType(UserAgent ua, UserAgentBuilder builder) {
         String deviceType = ua.get(UserAgent.DEVICE_CLASS).getValue().toLowerCase();
@@ -45,7 +41,6 @@ public class UserAgentService {
         builder.name(ua.get(UserAgent.AGENT_NAME).getValue());
         builder.version(ua.get(UserAgent.AGENT_VERSION).getValue());
 
-
         return builder.build();
     }
 }
diff --git a/src/main/java/edu/umd/dawn/common/wrappers/DawnHttpServletRequestWrapper.java b/src/main/java/edu/umd/dawn/common/wrappers/DawnHttpServletRequestWrapper.java
index f2e21ba..98b8ea6 100644
--- a/src/main/java/edu/umd/dawn/common/wrappers/DawnHttpServletRequestWrapper.java
+++ b/src/main/java/edu/umd/dawn/common/wrappers/DawnHttpServletRequestWrapper.java
@@ -22,6 +22,7 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
 
     /**
      * try everything possible to get the claims
+     * eventually, we will be requiring jwts everywhere so this wont need to be so complex
      * @return
      */
     public Claims getClaims() {
@@ -31,7 +32,9 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
         }
 
         if (accessSecret.equals("empty")) {
-            log.warn("This service has not been provided the configuration value for `config.accessSecret` in the application.properties configuration. Since it uses the JWTInterceptor, this is a required value for proper functionality.");
+            log.warn("This service has not been provided the configuration value for `config.accessSecret` in the"
+                    + " application.properties configuration. Since it uses the JWTInterceptor, this is a required"
+                    + " value for proper functionality.");
         }
 
         String token = (String) getAttribute("token");
@@ -53,7 +56,5 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
         }
 
         return null;
-
     }
-    
 }
-- 
GitLab