|
@@ -1,6 +1,7 @@
|
|
|
package com.caimei365.user.idempotent;
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.caimei365.user.feign.ToolsFeign;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
@@ -9,13 +10,16 @@ import org.aspectj.lang.annotation.Around;
|
|
|
import org.aspectj.lang.annotation.Aspect;
|
|
|
import org.aspectj.lang.annotation.Pointcut;
|
|
|
import org.aspectj.lang.reflect.MethodSignature;
|
|
|
+import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.context.request.RequestAttributes;
|
|
|
import org.springframework.web.context.request.RequestContextHolder;
|
|
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
import java.lang.reflect.Method;
|
|
|
|
|
|
|
|
@@ -75,6 +79,29 @@ public class IpSaveAspect {
|
|
|
if (sp) {
|
|
|
queryString = request.getQueryString();
|
|
|
}
|
|
|
+ // 接口是post时数据处理
|
|
|
+ String params = "";
|
|
|
+ if ("POST".equals(request.getMethod())) {
|
|
|
+ LocalVariableTableParameterNameDiscoverer discoverer = new LocalVariableTableParameterNameDiscoverer();
|
|
|
+ String[] parameterNames = discoverer.getParameterNames(method);
|
|
|
+ // 请求的方法参数值 JSON 格式 null 不显示
|
|
|
+ if (joinPoint.getArgs().length > 0) {
|
|
|
+ Object[] args = joinPoint.getArgs();
|
|
|
+ for (int i = 0; i < args.length; i++) {
|
|
|
+ // 请求参数类型判断过滤,防止JSON转换报错
|
|
|
+ if(args[i] instanceof HttpServletRequest || args[i] instanceof HttpServletResponse || args[i] instanceof MultipartFile) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ // 参数格式调整为par1=……&par2=……&......
|
|
|
+ String[] split = args[i].toString().substring(args[i].toString().indexOf("(")+1, args[i].toString().lastIndexOf(")")).split(",");
|
|
|
+ for (int k = 0; k < split.length ; k++) {
|
|
|
+ params += split[k]+"&";
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ log.info("POST请求参数打印===================》"+params);
|
|
|
+ }
|
|
|
+ }
|
|
|
String mes = "";
|
|
|
if (StringUtils.isNotBlank(ip)) {
|
|
|
mes += ip + "¥";
|
|
@@ -86,6 +113,10 @@ public class IpSaveAspect {
|
|
|
} else {
|
|
|
mes += "¥";
|
|
|
}
|
|
|
+ // 访问接口类型为post时接口参数调整
|
|
|
+ if ("POST".equals(request.getMethod())){
|
|
|
+ queryString = params;
|
|
|
+ }
|
|
|
if (StringUtils.isNotBlank(queryString)) {
|
|
|
mes += queryString + "¥";
|
|
|
} else {
|