From ca670287d84835499b735b151e6ed5bff224f23c Mon Sep 17 00:00:00 2001 From: ziin Date: Tue, 24 Mar 2026 14:21:34 +0800 Subject: [PATCH] =?UTF-8?q?fix(aop):=20=E4=BD=BF=E7=94=A8=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=E8=A7=A3=E6=9E=90=E7=9C=9F=E5=AE=9E=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AFIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原代码直接取 request.getRemoteHost(),在反向代理场景下会拿到代理服务器地址。 新增 RequestIpUtils.resolveClientIp() 按 X-Forwarded-For 等头部逐级解析,确保日志记录的 IP 为真实用户地址。 --- src/main/java/com/yolo/keyborad/aop/LogInterceptor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/yolo/keyborad/aop/LogInterceptor.java b/src/main/java/com/yolo/keyborad/aop/LogInterceptor.java index cfcff69..ad2cd21 100644 --- a/src/main/java/com/yolo/keyborad/aop/LogInterceptor.java +++ b/src/main/java/com/yolo/keyborad/aop/LogInterceptor.java @@ -2,6 +2,7 @@ package com.yolo.keyborad.aop; import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpUtil; +import com.yolo.keyborad.utils.RequestIpUtils; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -44,9 +45,10 @@ public class LogInterceptor { String reqParam = "[" + StringUtils.join(args, ", ") + "]"; String tokenString = httpServletRequest.getHeader("auth-token"); Object userId = StpUtil.getLoginIdByToken(tokenString); + String ip = RequestIpUtils.resolveClientIp(httpServletRequest); // 输出请求日志 log.info("request start,id: {}, userId:{}, path: {}, ip: {}, params: {}",requestId, userId, url, - httpServletRequest.getRemoteHost(), reqParam); + ip, reqParam); // 执行原方法 Object result = point.proceed(); // 输出响应日志