From 179c4d64313c9b7572778da4aaaf6c6584fe457d Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 20 五月 2025 23:48:08 +0800 Subject: [PATCH] 修改文件上传类型限制 --- springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java | 168 +++++++++++++++++++++---------------------------------- 1 files changed, 65 insertions(+), 103 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java index 9e46023..d7aed55 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java @@ -1,15 +1,16 @@ package com.panzhihua.serviceapi.aop; -import com.alibaba.fastjson.JSONObject; -import com.panzhihua.common.constants.Constants; -import com.panzhihua.common.constants.TokenConstant; -import com.panzhihua.common.interfaces.OperLog; -import com.panzhihua.common.model.vos.LoginUserInfoVO; -import com.panzhihua.common.model.vos.user.SysOperLogVO; -import com.panzhihua.common.service.user.UserService; -import com.panzhihua.common.utlis.AES; -import com.panzhihua.common.utlis.IPUtil; -import lombok.extern.slf4j.Slf4j; +import java.io.BufferedReader; +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; @@ -20,15 +21,17 @@ import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.BufferedReader; -import java.io.IOException; -import java.lang.reflect.Method; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import com.alibaba.fastjson.JSONObject; +import com.panzhihua.common.constants.Constants; +import com.panzhihua.common.constants.TokenConstant; +import com.panzhihua.common.interfaces.OperLog; +import com.panzhihua.common.model.vos.LoginUserInfoVO; +import com.panzhihua.common.model.vos.user.SysOperLogVO; +import com.panzhihua.common.service.user.UserService; +import com.panzhihua.common.utlis.AES; +import com.panzhihua.common.utlis.IPUtil; + +import lombok.extern.slf4j.Slf4j; /** * 切面处理类,操作日志异常日志记录处理 @@ -48,21 +51,15 @@ * 设置操作日志切入点 记录操作日志 在注解的位置切入代码 */ @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)") - public void operLogPoinCut() { - } - -// /** -// * 设置操作异常切入点记录异常日志 扫描所有controller包下操作 -// */ -// @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))") -// public void operExceptionLogPoinCut() { -// } + public void operLogPoinCut() {} /** * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行 * - * @param joinPoint 切入点 - * @param keys 返回结果 + * @param joinPoint + * 切入点 + * @param keys + * 返回结果 */ @AfterReturning(value = "operLogPoinCut()", returning = "keys") public void saveOperLog(JoinPoint joinPoint, Object keys) { @@ -70,25 +67,25 @@ // 获取RequestAttributes RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); // 从获取RequestAttributes中获取HttpServletRequest的信息 - HttpServletRequest request = (HttpServletRequest) requestAttributes - .resolveReference(RequestAttributes.REFERENCE_REQUEST); -// 登录对象信息 + HttpServletRequest request = + (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST); + // 登录对象信息 String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO); boolean empty = ObjectUtils.isEmpty(userInfo); if (empty) { - log.error("操作日志获取登录用户信息失败【{}】",joinPoint); + log.error("操作日志获取登录用户信息失败【{}】", joinPoint); return; } byte[] bytes = AES.parseHexStr2Byte(userInfo); byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY); - userInfo=new String(decrypt); - LoginUserInfoVO loginUserInfoVO= JSONObject.parseObject(userInfo,LoginUserInfoVO.class); + userInfo = new String(decrypt); + LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class); SysOperLogVO operlog = new SysOperLogVO(); try { // 从切面织入点处通过反射机制获取织入点处的方法 - MethodSignature signature = (MethodSignature) joinPoint.getSignature(); + MethodSignature signature = (MethodSignature)joinPoint.getSignature(); // 获取切入点所在的方法 Method method = signature.getMethod(); // 获取操作 @@ -96,8 +93,10 @@ if (opLog != null) { String operModul = opLog.operModul(); int operType = opLog.operType(); - operlog.setTitle(operModul); // 操作模块 - operlog.setBusinessType(operType); // 操作类型 + operlog.setTitle(operModul); + // 操作模块 + operlog.setBusinessType(operType); + // 操作类型 } // 获取请求的类名 String className = joinPoint.getTarget().getClass().getName(); @@ -105,104 +104,64 @@ String methodName = method.getName(); methodName = className + "." + methodName; - operlog.setMethod(methodName); // 请求方法 + operlog.setMethod(methodName); + // 请求方法 if (joinPoint.getArgs().length > 0) { for (Object o : joinPoint.getArgs()) { if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) { continue; } - operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数 + operlog.setOperParam(JSONObject.toJSONString(o)); + // 请求参数 } } - operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果 + operlog.setJsonResult(JSONObject.toJSONString(keys)); + // 返回结果 operlog.setAccount(loginUserInfoVO.getAccount()); - operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称 - operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP - operlog.setOperUrl(request.getRequestURI()); // 请求URI + operlog.setOperName(loginUserInfoVO.getName()); + // 请求用户名称 + operlog.setOperIp(IPUtil.getIpAddress(request)); + // 请求IP + operlog.setOperUrl(request.getRequestURI()); + // 请求URI operlog.setRequestMethod(request.getMethod()); operlog.setOperLocation(IPUtil.getIpBelongAddress(request)); - operlog.setOperTime(new Date()); // 创建时间 + operlog.setOperTime(new Date()); + // 创建时间 operlog.setAccount(loginUserInfoVO.getAccount()); Long communityId = loginUserInfoVO.getCommunityId(); - operlog.setCommunityId(null==communityId?0:communityId); + operlog.setCommunityId(null == communityId ? 0 : communityId); userService.addOperLog(operlog); } catch (Exception e) { e.printStackTrace(); } } -// /** -// * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行 -// * -// * @param joinPoint 切入点 -// * @param e 异常信息 -// */ -// @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e") -// public void saveExceptionLog(JoinPoint joinPoint, Throwable e) { -// // 获取RequestAttributes -// RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); -// // 从获取RequestAttributes中获取HttpServletRequest的信息 -// HttpServletRequest request = (HttpServletRequest) requestAttributes -// .resolveReference(RequestAttributes.REFERENCE_REQUEST); -// -// ExceptionLog excepLog = new ExceptionLog(); -// try { -// // 从切面织入点处通过反射机制获取织入点处的方法 -// MethodSignature signature = (MethodSignature) joinPoint.getSignature(); -// // 获取切入点所在的方法 -// Method method = signature.getMethod(); -// excepLog.setExcId(UuidUtil.get32UUID()); -// // 获取请求的类名 -// String className = joinPoint.getTarget().getClass().getName(); -// // 获取请求的方法名 -// String methodName = method.getName(); -// methodName = className + "." + methodName; -// // 请求的参数 -// Map<String, String> rtnMap = converMap(request.getParameterMap()); -// // 将参数所在的数组转换成json -// String params = JSON.toJSONString(rtnMap); -// excepLog.setExcRequParam(params); // 请求参数 -// excepLog.setOperMethod(methodName); // 请求方法名 -// excepLog.setExcName(e.getClass().getName()); // 异常名称 -// excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息 -// excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID -// excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称 -// excepLog.setOperUri(request.getRequestURI()); // 操作URI -// excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP -// excepLog.setOperVer(operVer); // 操作版本号 -// excepLog.setOperCreateTime(new Date()); // 发生异常时间 -// -// exceptionLogService.insert(excepLog); -// -// } catch (Exception e2) { -// e2.printStackTrace(); -// } -// -// } - /** * 转换request 请求参数 * - * @param paramMap request获取的参数数组 + * @param paramMap + * request获取的参数数组 */ public Map<String, String> converMap(Map<String, String[]> paramMap) { - Map<String, String> rtnMap = new HashMap<String, String>(); + Map<String, String> rtnMap = new HashMap<>(6); for (String key : paramMap.keySet()) { rtnMap.put(key, paramMap.get(key)[0]); } return rtnMap; } - private String getPostData(HttpServletRequest request) { + private String getPostData(HttpServletRequest request) { StringBuffer data = new StringBuffer(); String line = null; BufferedReader reader = null; try { reader = request.getReader(); - while (null != (line = reader.readLine())) + while (null != (line = reader.readLine())) { data.append(line); + } } catch (IOException e) { } finally { } @@ -212,9 +171,12 @@ /** * 转换异常信息为字符串 * - * @param exceptionName 异常名称 - * @param exceptionMessage 异常信息 - * @param elements 堆栈信息 + * @param exceptionName + * 异常名称 + * @param exceptionMessage + * 异常信息 + * @param elements + * 堆栈信息 */ public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) { StringBuffer strbuff = new StringBuffer(); -- Gitblit v1.7.1