|
@@ -15,7 +15,6 @@ import cn.iocoder.dashboard.util.json.JsonUtils;
|
|
|
import cn.iocoder.dashboard.util.servlet.ServletUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.web.filter.OncePerRequestFilter;
|
|
|
|
|
|
import javax.servlet.FilterChain;
|
|
@@ -36,10 +35,9 @@ import java.util.Map;
|
|
|
public class ApiAccessLogFilter extends OncePerRequestFilter {
|
|
|
|
|
|
private final WebProperties webProperties;
|
|
|
- private final ApiAccessLogFrameworkService apiAccessLogFrameworkService;
|
|
|
+ private final String applicationName;
|
|
|
|
|
|
- @Value("${spring.application.name}")
|
|
|
- private String applicationName;
|
|
|
+ private final ApiAccessLogFrameworkService apiAccessLogFrameworkService;
|
|
|
|
|
|
@Override
|
|
|
protected boolean shouldNotFilter(HttpServletRequest request) {
|
|
@@ -51,7 +49,7 @@ public class ApiAccessLogFilter extends OncePerRequestFilter {
|
|
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
|
|
|
throws ServletException, IOException {
|
|
|
// 获得开始时间
|
|
|
- Date startTime = new Date();
|
|
|
+ Date beginTim = new Date();
|
|
|
// 提前获得参数,避免 XssFilter 过滤处理
|
|
|
Map<String, String> queryString = ServletUtil.getParamMap(request);
|
|
|
String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtil.getBody(request) : null;
|
|
@@ -60,25 +58,25 @@ public class ApiAccessLogFilter extends OncePerRequestFilter {
|
|
|
// 继续过滤器
|
|
|
filterChain.doFilter(request, response);
|
|
|
// 正常执行,记录日志
|
|
|
- createApiAccessLog(request, startTime, queryString, requestBody, null);
|
|
|
+ createApiAccessLog(request, beginTim, queryString, requestBody, null);
|
|
|
} catch (Exception ex) {
|
|
|
// 异常执行,记录日志
|
|
|
- createApiAccessLog(request, startTime, queryString, requestBody, ex);
|
|
|
+ createApiAccessLog(request, beginTim, queryString, requestBody, ex);
|
|
|
throw ex;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void createApiAccessLog(HttpServletRequest request, Date startTime,
|
|
|
+ private void createApiAccessLog(HttpServletRequest request, Date beginTime,
|
|
|
Map<String, String> queryString, String requestBody, Exception ex) {
|
|
|
try {
|
|
|
- ApiAccessLogCreateDTO accessLog = this.buildApiAccessLogDTO(request, startTime, queryString, requestBody, ex);
|
|
|
+ ApiAccessLogCreateDTO accessLog = this.buildApiAccessLogDTO(request, beginTime, queryString, requestBody, ex);
|
|
|
apiAccessLogFrameworkService.createApiAccessLogAsync(accessLog);
|
|
|
} catch (Exception e) {
|
|
|
- log.error("[createApiAccessLog][url({}) 发生异常]", request.getRequestURI(), ex);
|
|
|
+ log.error("[createApiAccessLog][url({}) 发生异常]", request.getRequestURI(), e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private ApiAccessLogCreateDTO buildApiAccessLogDTO(HttpServletRequest request, Date startTime,
|
|
|
+ private ApiAccessLogCreateDTO buildApiAccessLogDTO(HttpServletRequest request, Date beginTime,
|
|
|
Map<String, String> queryString, String requestBody, Exception ex) {
|
|
|
ApiAccessLogCreateDTO accessLog = new ApiAccessLogCreateDTO();
|
|
|
// 处理用户信息
|
|
@@ -106,9 +104,9 @@ public class ApiAccessLogFilter extends OncePerRequestFilter {
|
|
|
accessLog.setUserAgent(ServletUtils.getUserAgent(request));
|
|
|
accessLog.setUserIp(ServletUtil.getClientIP(request));
|
|
|
// 持续时间
|
|
|
- accessLog.setStartTime(startTime);
|
|
|
+ accessLog.setBeginTime(beginTime);
|
|
|
accessLog.setEndTime(new Date());
|
|
|
- accessLog.setDuration((int) DateUtils.diff(accessLog.getEndTime(), accessLog.getStartTime()));
|
|
|
+ accessLog.setDuration((int) DateUtils.diff(accessLog.getEndTime(), accessLog.getBeginTime()));
|
|
|
return accessLog;
|
|
|
}
|
|
|
|