Skip to content
Snippets Groups Projects
Commit 7caa69d9 authored by Tucker Gary Siegel's avatar Tucker Gary Siegel
Browse files

update and clean

parent b35b024c
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,6 @@ import edu.umd.dawn.common.exceptions.DawnException; ...@@ -6,7 +6,6 @@ import edu.umd.dawn.common.exceptions.DawnException;
import edu.umd.dawn.common.jwt.Claims; import edu.umd.dawn.common.jwt.Claims;
import edu.umd.dawn.common.services.UserAuthService; import edu.umd.dawn.common.services.UserAuthService;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
......
...@@ -5,7 +5,6 @@ import edu.umd.dawn.common.jwt.JWTUtil; ...@@ -5,7 +5,6 @@ import edu.umd.dawn.common.jwt.JWTUtil;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
...@@ -30,13 +29,14 @@ public class JWTInterceptor implements HandlerInterceptor { ...@@ -30,13 +29,14 @@ public class JWTInterceptor implements HandlerInterceptor {
@Value("${config.accessSecret:empty}") @Value("${config.accessSecret:empty}")
private String accessSecret; private String accessSecret;
@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception { throws Exception {
if (accessSecret.equals("empty")) { 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) { if (!local) {
......
...@@ -24,10 +24,10 @@ import org.springframework.web.servlet.HandlerMapping; ...@@ -24,10 +24,10 @@ import org.springframework.web.servlet.HandlerMapping;
public class RequestInterceptor implements HandlerInterceptor { public class RequestInterceptor implements HandlerInterceptor {
private String TRACE_HEADER = "X-Request-Id"; private String TRACE_HEADER = "X-Request-Id";
@Value("${config.serviceName:dawn-service}") @Value("${config.serviceName:dawn-service}")
private String serviceName; private String serviceName;
@Value("${config.accessSecret:empty}") @Value("${config.accessSecret:empty}")
private String accessSecret; private String accessSecret;
...@@ -103,6 +103,10 @@ public class RequestInterceptor implements HandlerInterceptor { ...@@ -103,6 +103,10 @@ public class RequestInterceptor implements HandlerInterceptor {
Map<String, String> headers = getRequestHeaders(request); Map<String, String> headers = getRequestHeaders(request);
Claims claims = new DawnHttpServletRequestWrapper(request, accessSecret).getClaims(); Claims claims = new DawnHttpServletRequestWrapper(request, accessSecret).getClaims();
String userId = "";
if (claims != null) {
userId = claims.getUserId();
}
RequestLog requestLog = RequestLog.builder() RequestLog requestLog = RequestLog.builder()
.path(path) .path(path)
...@@ -112,7 +116,7 @@ public class RequestInterceptor implements HandlerInterceptor { ...@@ -112,7 +116,7 @@ public class RequestInterceptor implements HandlerInterceptor {
.parameters(getParemeters(request)) .parameters(getParemeters(request))
.duration(executeTime) .duration(executeTime)
.userAgent(userAgentService.parse(headers)) .userAgent(userAgentService.parse(headers))
.userId(claims.getUserId()) .userId(userId)
.build(); .build();
log.log(Level.forName("REQUEST", 10), requestLog); log.log(Level.forName("REQUEST", 10), requestLog);
......
package edu.umd.dawn.common.logging; package edu.umd.dawn.common.logging;
import edu.umd.dawn.common.models.UserAgent;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import edu.umd.dawn.common.models.UserAgent;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
......
...@@ -7,13 +7,15 @@ import lombok.Data; ...@@ -7,13 +7,15 @@ import lombok.Data;
@Builder @Builder
public class UserAgent { public class UserAgent {
@Builder.Default @Builder.Default
private boolean bot = false; private boolean bot = false;
@Builder.Default @Builder.Default
private boolean tablet = false; private boolean tablet = false;
@Builder.Default @Builder.Default
private boolean mobile = false; private boolean mobile = false;
@Builder.Default @Builder.Default
private boolean desktop = false; private boolean desktop = false;
...@@ -22,5 +24,4 @@ public class UserAgent { ...@@ -22,5 +24,4 @@ public class UserAgent {
private String osVersion; private String osVersion;
private String name; private String name;
private String version; private String version;
} }
package edu.umd.dawn.common.services; 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 edu.umd.dawn.common.models.UserAgent.UserAgentBuilder;
import java.util.Map;
import nl.basjes.parse.useragent.UserAgent; import nl.basjes.parse.useragent.UserAgent;
import nl.basjes.parse.useragent.UserAgentAnalyzer; import nl.basjes.parse.useragent.UserAgentAnalyzer;
import org.springframework.stereotype.Service;
import static nl.basjes.parse.useragent.classify.DeviceClass.TABLET;
import java.util.Map;
import static nl.basjes.parse.useragent.classify.DeviceClass.PHONE;;
@Service @Service
public class UserAgentService { public class UserAgentService {
private UserAgentAnalyzer uaa = UserAgentAnalyzer private UserAgentAnalyzer uaa = UserAgentAnalyzer.newBuilder()
.newBuilder() .hideMatcherLoadStats()
.hideMatcherLoadStats() .withCache(10000)
.withCache(10000) .build();
.build();
private UserAgentBuilder setDeviceType(UserAgent ua, UserAgentBuilder builder) { private UserAgentBuilder setDeviceType(UserAgent ua, UserAgentBuilder builder) {
String deviceType = ua.get(UserAgent.DEVICE_CLASS).getValue().toLowerCase(); String deviceType = ua.get(UserAgent.DEVICE_CLASS).getValue().toLowerCase();
...@@ -45,7 +41,6 @@ public class UserAgentService { ...@@ -45,7 +41,6 @@ public class UserAgentService {
builder.name(ua.get(UserAgent.AGENT_NAME).getValue()); builder.name(ua.get(UserAgent.AGENT_NAME).getValue());
builder.version(ua.get(UserAgent.AGENT_VERSION).getValue()); builder.version(ua.get(UserAgent.AGENT_VERSION).getValue());
return builder.build(); return builder.build();
} }
} }
...@@ -22,6 +22,7 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper { ...@@ -22,6 +22,7 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
/** /**
* try everything possible to get the claims * try everything possible to get the claims
* eventually, we will be requiring jwts everywhere so this wont need to be so complex
* @return * @return
*/ */
public Claims getClaims() { public Claims getClaims() {
...@@ -31,7 +32,9 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper { ...@@ -31,7 +32,9 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
} }
if (accessSecret.equals("empty")) { 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"); String token = (String) getAttribute("token");
...@@ -53,7 +56,5 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper { ...@@ -53,7 +56,5 @@ public class DawnHttpServletRequestWrapper extends HttpServletRequestWrapper {
} }
return null; return null;
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment