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