|
@@ -9,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
import org.slf4j.MDC;
|
|
|
import org.springframework.lang.Nullable;
|
|
|
import org.springframework.util.StopWatch;
|
|
|
+import org.springframework.util.StreamUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.servlet.HandlerInterceptor;
|
|
|
|
|
@@ -16,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
import java.net.URLDecoder;
|
|
|
+import java.nio.charset.Charset;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Enumeration;
|
|
@@ -61,13 +63,21 @@ public class RequestLogHandlerInterceptor implements HandlerInterceptor {
|
|
|
parameters.put(k, v);
|
|
|
}
|
|
|
log.info("查询参数: {}", new ObjectMapper().writeValueAsString(parameters));
|
|
|
+ String body = null;
|
|
|
+ if (!MyDispatcherServlet.UN_WRAPPER.contains(request.getRequestURI())) {
|
|
|
+ // 请求体参数
|
|
|
+ body = StreamUtils.copyToString(request.getInputStream(), Charset.forName(request.getCharacterEncoding()));
|
|
|
+ log.info("请求体参数: {}", StringUtils.trimAllWhitespace(body));
|
|
|
+ }
|
|
|
// todo: 记录日志
|
|
|
String token = request.getHeader("token");
|
|
|
+ if (!StringUtils.hasText(token) || "undefined".equals(token)) {
|
|
|
+ token = parameters.get("token");
|
|
|
+ }
|
|
|
log.info("token: {}", token);
|
|
|
- if (!StringUtils.hasText(token)) {
|
|
|
+// if (!StringUtils.hasText(token)) {
|
|
|
// return forbidden(response);
|
|
|
- return true;
|
|
|
- }
|
|
|
+// }
|
|
|
try {
|
|
|
String urlDecodeToken = URLDecoder.decode(token, StandardCharsets.UTF_8);
|
|
|
log.info("urlDecodeToken: {}", urlDecodeToken);
|
|
@@ -80,8 +90,11 @@ public class RequestLogHandlerInterceptor implements HandlerInterceptor {
|
|
|
// return forbidden(response);
|
|
|
// }
|
|
|
map.put("api", request.getRequestURI());
|
|
|
-// map.put("body", body);
|
|
|
+ map.put("body", body);
|
|
|
map.put("time", now.toString());
|
|
|
+ map.put("headers", gson.toJson(headers));
|
|
|
+ map.put("parameters", gson.toJson(parameters));
|
|
|
+ map.put("token", urlDecodeToken);
|
|
|
log.info("调用记录: {}", gson.toJson(map));
|
|
|
} catch (Exception e) {
|
|
|
log.warn("token解密失败: {}", token);
|