From 5a33829488f882703b6427ec5e0031a3c9c706a2 Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Tue, 15 Apr 2025 17:36:34 +0800 Subject: [PATCH] 1.0 --- oying-system/src/main/resources/config/application-dev.yml | 4 ++-- oying-logging/src/main/java/com/oying/service/impl/SysLogServiceImpl.java | 49 +++++++++++++++++++++++-------------------------- oying-system/src/main/resources/config/application-prod.yml | 4 ++-- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/oying-logging/src/main/java/com/oying/service/impl/SysLogServiceImpl.java b/oying-logging/src/main/java/com/oying/service/impl/SysLogServiceImpl.java index 4cfa82b..9ba9e0e 100644 --- a/oying-logging/src/main/java/com/oying/service/impl/SysLogServiceImpl.java +++ b/oying-logging/src/main/java/com/oying/service/impl/SysLogServiceImpl.java @@ -1,8 +1,7 @@ package com.oying.service.impl; import cn.hutool.core.lang.Dict; -import com.alibaba.fastjson2.JSON; -import com.alibaba.fastjson2.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.oying.annotation.Log; @@ -21,7 +20,9 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; + import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -38,8 +39,6 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implements SysLogService { private final SysLogMapper sysLogMapper; - // 定义敏感字段常量数组 - private static final String[] SENSITIVE_KEYS = {"password"}; @Override public PageResult<SysLog> queryAll(SysLogQueryCriteria criteria, Page<SysLog> page) { @@ -72,22 +71,15 @@ // 方法路径 String methodName = joinPoint.getTarget().getClass().getName() + "." + signature.getName() + "()"; - // 获取参数 - JSONObject params = getParameter(method, joinPoint.getArgs()); // 填充基本信息 sysLog.setRequestIp(ip); sysLog.setAddress(StringUtils.getCityInfo(sysLog.getRequestIp())); sysLog.setMethod(methodName); sysLog.setUsername(username); - sysLog.setParams(JSON.toJSONString(params)); + sysLog.setParams(getParameter(method, joinPoint.getArgs())); sysLog.setBrowser(browser); sysLog.setDescription(aopLog.value()); - - // 如果没有获取到用户名,尝试从参数中获取 - if(StringUtils.isBlank(sysLog.getUsername())){ - sysLog.setUsername(params.getString("username")); - } // 保存 save(sysLog); @@ -96,8 +88,8 @@ /** * 根据方法和传入的参数获取请求参数 */ - private JSONObject getParameter(Method method, Object[] args) { - JSONObject params = new JSONObject(); + private String getParameter(Method method, Object[] args) { + List<Object> argList = new ArrayList<>(); Parameter[] parameters = method.getParameters(); for (int i = 0; i < parameters.length; i++) { // 过滤掉 MultiPartFile @@ -112,24 +104,29 @@ if (args[i] instanceof HttpServletRequest) { continue; } - // 将RequestBody注解修饰的参数作为请求参数 + //将RequestBody注解修饰的参数作为请求参数 RequestBody requestBody = parameters[i].getAnnotation(RequestBody.class); if (requestBody != null) { - params.putAll((JSONObject) JSON.toJSON(args[i])); - } else { - String key = parameters[i].getName(); - params.put(key, args[i]); + argList.add(args[i]); } - } - // 遍历敏感字段数组并替换值 - Set<String> keys = params.keySet(); - for (String key : SENSITIVE_KEYS) { - if (keys.contains(key)) { - params.put(key, "******"); + //将RequestParam注解修饰的参数作为请求参数 + RequestParam requestParam = parameters[i].getAnnotation(RequestParam.class); + if (requestParam != null) { + Map<String, Object> map = new HashMap<>(); + String key = parameters[i].getName(); + if (!StringUtils.isEmpty(requestParam.value())) { + key = requestParam.value(); + } + map.put(key, args[i]); + argList.add(map); } } // 返回参数 - return params; + if (argList.isEmpty()) { + return ""; + } + return argList.size() == 1 ? JSONUtil.toJsonStr(argList.get(0)) : JSONUtil.toJsonStr(argList); + } @Override diff --git a/oying-system/src/main/resources/config/application-dev.yml b/oying-system/src/main/resources/config/application-dev.yml index f1717d3..1880cf2 100644 --- a/oying-system/src/main/resources/config/application-dev.yml +++ b/oying-system/src/main/resources/config/application-dev.yml @@ -62,7 +62,7 @@ # 验证码 code: # 验证码类型配置 查看 LoginProperties 类 - code-type: spec + code-type: SPEC # 登录图形验证码有效时间/分钟 expiration: 2 # 验证码高度 @@ -70,7 +70,7 @@ # 验证码宽度 height: 36 # 内容长度 - length: 2 + length: 4 # 字体名称,为空则使用默认字体 font-name: # 字体大小 diff --git a/oying-system/src/main/resources/config/application-prod.yml b/oying-system/src/main/resources/config/application-prod.yml index 4c783a9..f3cc9c8 100644 --- a/oying-system/src/main/resources/config/application-prod.yml +++ b/oying-system/src/main/resources/config/application-prod.yml @@ -66,7 +66,7 @@ # 验证码 code: # 验证码类型配置 查看 LoginProperties 类 - code-type: spec + code-type: SPEC # 登录图形验证码有效时间/分钟 expiration: 2 # 验证码高度 @@ -74,7 +74,7 @@ # 验证码宽度 height: 36 # 内容长度 - length: 2 + length: 4 # 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可 font-name: # 字体大小 -- Gitblit v1.9.3