From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-gateway/src/main/java/jnpf/util/ReactorUtil.java | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/jnpf-gateway/src/main/java/jnpf/util/ReactorUtil.java b/jnpf-gateway/src/main/java/jnpf/util/ReactorUtil.java
new file mode 100644
index 0000000..962228f
--- /dev/null
+++ b/jnpf-gateway/src/main/java/jnpf/util/ReactorUtil.java
@@ -0,0 +1,43 @@
+package jnpf.util;
+
+import cn.dev33.satoken.context.model.SaRequest;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+
+public class ReactorUtil {
+
+ public static String getIpAddr(SaRequest serverHttpRequest) {
+ String xIp = serverHttpRequest.getHeader("X-Real-IP");
+ String xFor = serverHttpRequest.getHeader("X-Forwarded-For");
+ if (StringUtil.isNotEmpty(xFor) && !"unKnown".equalsIgnoreCase(xFor)) {
+ int index = xFor.indexOf(",");
+ if (index != -1) {
+ return xFor.substring(0, index);
+ } else {
+ return xFor;
+ }
+ }
+ xFor = xIp;
+ if (StringUtil.isNotEmpty(xFor) && !"unKnown".equalsIgnoreCase(xFor)) {
+ return xFor;
+ }
+ if (StringUtil.isBlank(xFor) || "unknown".equalsIgnoreCase(xFor)) {
+ xFor = serverHttpRequest.getHeader("Proxy-Client-IP");
+ }
+ if (StringUtil.isBlank(xFor) || "unknown".equalsIgnoreCase(xFor)) {
+ xFor = serverHttpRequest.getHeader("WL-Proxy-Client-IP");
+ }
+ if (StringUtil.isBlank(xFor) || "unknown".equalsIgnoreCase(xFor)) {
+ xFor = serverHttpRequest.getHeader("HTTP_CLIENT_IP");
+ }
+ if (StringUtil.isBlank(xFor) || "unknown".equalsIgnoreCase(xFor)) {
+ xFor = serverHttpRequest.getHeader("HTTP_X_FORWARDED_FOR");
+ }
+ if (StringUtil.isBlank(xFor) || "unknown".equalsIgnoreCase(xFor)) {
+ if(serverHttpRequest.getSource() instanceof ServerHttpRequest) {
+ xFor = ((ServerHttpRequest)serverHttpRequest.getSource()).getRemoteAddress().getAddress().getHostAddress();
+ }
+ }
+ String ip = "0:0:0:0:0:0:0:1".equals(xFor) ? "127.0.0.1" : xFor;
+ return ip;
+ }
+}
--
Gitblit v1.8.0