From 5ef6c105aca5bd7c0c63ce3240fbe82c2e07e8f7 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 18 三月 2026 13:46:05 +0800
Subject: [PATCH] lsh#// rsf-server本机调用直通,不需要Token
---
rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java | 43 +++++++++++++++++++++++++++++++++++++------
1 files changed, 37 insertions(+), 6 deletions(-)
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java
index e8134e6..4183d4f 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java
@@ -9,13 +9,15 @@
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter;
-import javax.annotation.Resource;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.annotation.Resource;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
/**
* AppId鍜孉ppSecret璁よ瘉杩囨护鍣�
@@ -43,6 +45,13 @@
// 妫�鏌ユ槸鍚︿负璁よ瘉璇锋眰锛堝鑾峰彇token锛�
if (isAuthRequest(requestURI)) {
// 瀵逛簬璁よ瘉璇锋眰锛屽厑璁搁�氳繃
+ filterChain.doFilter(request, response);
+ return;
+ }
+
+ // rsf-server鏈満璋冪敤鐩撮�氾紝涓嶉渶瑕乀oken
+ if (isRequestFromRsfServer(request)) {
+ request.setAttribute(Constants.REQUEST_ATTR_APP_ID, "rsf-server");
filterChain.doFilter(request, response);
return;
}
@@ -104,6 +113,28 @@
// requestURI.contains("/auth/login");
}
+ /**
+ * 鍒ゆ柇鏄惁鏉ヨ嚜rsf-server鐨勫唴閮ㄨ姹�
+ * 绾﹀畾锛氬悓鏈洪儴缃叉椂锛宺sf-server閫氳繃127.0.0.1/::1璁块棶open-api
+ */
+ private boolean isRequestFromRsfServer(HttpServletRequest request) {
+ String remoteAddr = request.getRemoteAddr();
+ if (StringUtils.isBlank(remoteAddr)) {
+ return false;
+ }
+
+ if ("127.0.0.1".equals(remoteAddr) || "::1".equals(remoteAddr) || "0:0:0:0:0:0:0:1".equals(remoteAddr)) {
+ return true;
+ }
+
+ try {
+ InetAddress address = InetAddress.getByName(remoteAddr);
+ return address.isLoopbackAddress() || address.isAnyLocalAddress();
+ } catch (UnknownHostException e) {
+ return false;
+ }
+ }
+
@Override
protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
String requestURI = request.getRequestURI();
@@ -118,4 +149,4 @@
requestURI.contains("/v3/api-docs");
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.1