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 32229dd9f8ac279f286702cddf4f3e0a9b2db1c7..e4ce295099a886e5070ecedb38d6c0c9b4b75c18 100644 --- a/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java +++ b/src/main/java/edu/umd/dawn/common/interceptor/RequestInterceptor.java @@ -11,6 +11,7 @@ import lombok.extern.log4j.Log4j2; import org.apache.logging.log4j.Level; import org.slf4j.MDC; import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.HandlerMapping; @Log4j2 public class RequestInterceptor implements HandlerInterceptor { @@ -52,6 +53,7 @@ public class RequestInterceptor implements HandlerInterceptor { return headers; } + @SuppressWarnings("unchecked") private Map<String, String> getParemeters(HttpServletRequest request) { Enumeration<String> parameterNames = request.getParameterNames(); Map<String, String> parameters = new HashMap<>(); @@ -62,6 +64,10 @@ public class RequestInterceptor implements HandlerInterceptor { parameters.put(ele, request.getParameter(ele)); } } + + Map<String, String> pathParams = (Map<String, String>)request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); + pathParams.forEach((k, v) -> parameters.merge(k, v, String::concat)); + return parameters; } @@ -71,8 +77,16 @@ public class RequestInterceptor implements HandlerInterceptor { long startTime = (Long) request.getAttribute("startTime"); long endTime = System.currentTimeMillis(); long executeTime = endTime - startTime; + + String fullPath = request.getRequestURI(); + String servletPattern = (String) request.getAttribute( + HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); + String servletPath = request.getServletPath(); + + String path = fullPath.replace(servletPath, servletPattern); + RequestLog requestLog = RequestLog.builder() - .path(request.getRequestURI()) + .path(path) .method(request.getMethod()) .statusCode(response.getStatus()) .headers(getRequestHeaders(request))