Forráskód Böngészése

ServletUtil#getGatewayLog 添加获取 nginx 反向代理设置的 x-real-ip header

reghao 5 hónapja
szülő
commit
439d3dfded

+ 3 - 0
web/src/main/java/cn/reghao/jutil/web/HeaderKeys.java

@@ -7,5 +7,8 @@ package cn.reghao.jutil.web;
 public class HeaderKeys {
     public static String XRequestId = "x-request-id";
     public static String XRequestTime = "x-request-time";
+    // proxy protocol 协议设置的 remote address
     public static String XRealRemote = "X-Real-Remote";
+    // nginx 反向代理设置的 remote address
+    public static String XRealIP = "X-Real-IP";
 }

+ 5 - 0
web/src/main/java/cn/reghao/jutil/web/ServletUtil.java

@@ -209,6 +209,11 @@ public class ServletUtil {
         long responseTime = System.currentTimeMillis();
         long executeTime = responseTime - requestTime;
 
+        String realIP = requestHeaders.get(HeaderKeys.XRealIP);
+        if (realIP != null && !realIP.isBlank()) {
+            remoteAddr = realIP;
+        }
+
         String realRemoteAddr = requestHeaders.get(HeaderKeys.XRealRemote);
         if (realRemoteAddr != null && !realRemoteAddr.isBlank()) {
             remoteAddr = realRemoteAddr;