|
@@ -35,6 +35,7 @@ import java.util.HashMap;
|
|
|
|
|
|
|
|
|
/**
|
|
|
+ *
|
|
|
*/
|
|
|
@Slf4j
|
|
|
@Aspect
|
|
@@ -43,6 +44,7 @@ public class IpSaveAspect {
|
|
|
|
|
|
@Resource
|
|
|
private ToolsFeign toolsFeign;
|
|
|
+
|
|
|
/**
|
|
|
* 切入点,根据自定义IpSave实际路径进行调整
|
|
|
*/
|
|
@@ -52,42 +54,63 @@ public class IpSaveAspect {
|
|
|
|
|
|
@Around("executeIdempotent()")
|
|
|
public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
|
|
|
- //获取方法对象
|
|
|
+ //获取方法对象
|
|
|
Method method = ((MethodSignature) joinPoint.getSignature()).getMethod();
|
|
|
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
|
|
|
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes;
|
|
|
HttpServletRequest request = servletRequestAttributes.getRequest();
|
|
|
// ip
|
|
|
- String remoteAddr = request.getRemoteAddr();
|
|
|
+ String unknown = "unknown";
|
|
|
+ String ip = "";
|
|
|
+ ip = request.getHeader("x-forwarded-for");
|
|
|
+ if (StringUtils.isBlank(ip)) {
|
|
|
+ ip = request.getHeader("X-Real-IP");
|
|
|
+ }
|
|
|
+ if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("Proxy-Client-IP");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getHeader("WL-Proxy-Client-IP");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ip == null || ip.length() == 0 || unknown.equalsIgnoreCase(ip)) {
|
|
|
+ ip = request.getRemoteAddr();
|
|
|
+ }
|
|
|
// 接口路径
|
|
|
String requestURI = request.getRequestURI();
|
|
|
- // 接口真实发送参数
|
|
|
- String queryString = request.getQueryString();
|
|
|
//获取自定义注解
|
|
|
IpSave ipSave = method.getAnnotation(IpSave.class);
|
|
|
// 访问名 注解的值
|
|
|
String s = ipSave.saveName();
|
|
|
- String mes="";
|
|
|
- if(StringUtils.isNotBlank(remoteAddr)){
|
|
|
- mes+=remoteAddr+"¥";
|
|
|
- }else{
|
|
|
- mes="¥";
|
|
|
+ // 是否存储发送参数
|
|
|
+ boolean sp = ipSave.saveParams();
|
|
|
+ // 接口真实发送参数
|
|
|
+ String queryString = "";
|
|
|
+ if (sp) {
|
|
|
+ queryString = request.getQueryString();
|
|
|
+ }
|
|
|
+ String mes = "";
|
|
|
+ if (StringUtils.isNotBlank(ip)) {
|
|
|
+ mes += ip + "¥";
|
|
|
+ } else {
|
|
|
+ mes = "¥";
|
|
|
}
|
|
|
- if(StringUtils.isNotBlank(requestURI)){
|
|
|
- mes+=requestURI+"¥";
|
|
|
- }else{
|
|
|
- mes+="¥";
|
|
|
+ if (StringUtils.isNotBlank(requestURI)) {
|
|
|
+ mes += requestURI + "¥";
|
|
|
+ } else {
|
|
|
+ mes += "¥";
|
|
|
}
|
|
|
- if(StringUtils.isNotBlank(queryString)){
|
|
|
- mes+=queryString+"¥";
|
|
|
- }else {
|
|
|
- mes +="¥";
|
|
|
+ if (StringUtils.isNotBlank(queryString)) {
|
|
|
+ mes += queryString + "¥";
|
|
|
+ } else {
|
|
|
+ mes += "¥";
|
|
|
}
|
|
|
- if(StringUtils.isNotBlank(s)){
|
|
|
- mes+=s;
|
|
|
+ if (StringUtils.isNotBlank(s)) {
|
|
|
+ mes += s;
|
|
|
}
|
|
|
//异步给mq存
|
|
|
- toolsFeign.sendCommonMessage("IpSave",mes,null,1,1,null,null);
|
|
|
+ toolsFeign.sendCommonMessage("IpSave", mes, null, 1, 1, null, null);
|
|
|
|
|
|
return joinPoint.proceed();
|
|
|
}
|