优化:优化日志引擎记录登录日志

This commit is contained in:
Charles7c 2023-03-13 23:01:12 +08:00
parent aa3ea9400e
commit 9bbff7f22c
2 changed files with 11 additions and 1 deletions

View File

@ -46,7 +46,10 @@ import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.HttpStatus;
import cn.hutool.json.JSONUtil;
import top.charles7c.cnadmin.auth.model.request.LoginRequest;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.model.dto.LogContext;
import top.charles7c.cnadmin.common.util.ExceptionUtils;
import top.charles7c.cnadmin.common.util.IpUtils;
import top.charles7c.cnadmin.common.util.ServletUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
@ -55,6 +58,7 @@ import top.charles7c.cnadmin.monitor.annotation.Log;
import top.charles7c.cnadmin.monitor.config.properties.LogProperties;
import top.charles7c.cnadmin.monitor.enums.LogStatusEnum;
import top.charles7c.cnadmin.monitor.model.entity.LogDO;
import top.charles7c.cnadmin.system.service.UserService;
/**
* 系统日志拦截器
@ -67,6 +71,7 @@ import top.charles7c.cnadmin.monitor.model.entity.LogDO;
@RequiredArgsConstructor
public class LogInterceptor implements HandlerInterceptor {
private final UserService userService;
private final LogProperties operationLogProperties;
private static final String ENCRYPT_SYMBOL = "****************";
@ -220,6 +225,11 @@ public class LogInterceptor implements HandlerInterceptor {
logDO.setLocation(IpUtils.getCityInfo(logDO.getClientIp()));
logDO.setBrowser(ServletUtils.getBrowser(request));
logDO.setCreateUser(ObjectUtil.defaultIfNull(logDO.getCreateUser(), LoginHelper.getUserId()));
if (logDO.getCreateUser() == null && SysConsts.LOGIN_URI.equals(request.getRequestURI())) {
LoginRequest loginRequest = JSONUtil.toBean(requestBody, LoginRequest.class);
logDO.setCreateUser(
ExceptionUtils.exToNull(() -> userService.getByUsername(loginRequest.getUsername()).getId()));
}
}
/**

View File

@ -36,7 +36,7 @@ logging:
# 是否启用系统日志
enabled: true
# 是否记录内网 IP 操作
includeInnerIp: false
includeInnerIp: true
# 哪些请求方式不记录系统日志
#excludeMethods:
# - GET