From 35d8c09fd1ea3f72684c5921939fa20c92bd330b Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期二, 12 五月 2026 13:18:29 +0800
Subject: [PATCH] #

---
 rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 53 insertions(+), 3 deletions(-)

diff --git a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java
index f2aacb2..b744b41 100644
--- a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java
+++ b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java
@@ -3,7 +3,9 @@
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 
+import java.time.Duration;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
@@ -17,8 +19,26 @@
 
     private boolean enabled = true;
 
+    /** 1 鏁版嵁搴� 2 OpenSearch 3 鍙屽啓锛涙湭濉垨鍏跺畠鍊煎悓 1 */
+    private int logStorageMode = 1;
+
+    /** 浠� 2銆�3 浣跨敤 */
+    private OpenSearch openSearch = new OpenSearch();
+
+    /** 浠� 1銆�3锛涙棤澶氭暟鎹簮鍙渷鐣� */
+    private String datasource = "primary";
+
+    /** 鏄惁娉ㄥ唽 /httpAuditRule銆�/httpAuditLog銆�/httpAuditSysConfig 绛夌鐞嗘帴鍙� */
+    private boolean adminApiEnabled = true;
+
+    /** 鏄惁鎻愪緵闈欐�佹煡璇㈤〉涓� /http-audit/open/log/page锛堥粯璁� true锛涘彲 simple-ui-enabled=false 鍏抽棴锛� */
+    private boolean simpleUiEnabled = true;
+
+    /** 闈炵┖鏃惰姹傝姹傚ご X-Http-Audit-Ui-Token 涓庢湰鍊间竴鑷达紱鐣欑┖鍒欎笉鏍¢獙锛堝叕缃戝缓璁厤缃級 */
+    private String simpleUiToken = "";
+
     /**
-     * true锛氬叆绔�/鍑虹珯鏄惁钀藉簱鐢� {@code sys_http_audit_rule} 鍐冲畾锛堝惈 record_all=1 鍏ㄩ噺銆佹柟鍚� IN/OUT/BOTH銆佹埅鏂暱搴︼級锛沠alse锛氭帓闄よ矾寰勫鍏ョ珯涓庡叏閮ㄥ嚭绔欏潎璁板綍锛屾埅鏂敤鏈厤缃� + 瑙勫垯涓�屽叏閲忋�嶈鐨� request/response_max_chars锛堣嫢鏈夛級
+     * true锛氬叆绔�/鍑虹珯鏄惁钀藉簱鐢� {@code sys_http_audit_rule} 鍖归厤鍐冲畾锛坮ecord_all 浠呭奖鍝嶅懡涓潯鐨勬埅鏂紱鏂瑰悜 IN/OUT/BOTH锛夛紱false锛氭帓闄よ矾寰勫鍏ョ珯涓庡叏閮ㄥ嚭绔欏潎璁板綍锛屾埅鏂敤鏈厤缃粯璁ゅ瓧娈�
      */
     private boolean whitelistOnly = true;
 
@@ -51,7 +71,7 @@
     private List<String> excludePathPrefixes = defaultExcludes();
 
     /**
-     * true锛氶粯璁ゆ帓闄や腑鐨� /httpAuditLog銆�/httpAuditRule 浠嶇敓鏁堬紱false锛氫笉鍐嶆帓闄よ繖涓ら」锛堜究浜庤皟璇曪紱record_all 涔熸棤娉曠粫杩� true 鏃剁殑鎺掗櫎锛�
+     * true锛氶粯璁ゆ帓闄や腑鐨� /httpAuditLog銆�/httpAuditRule 浠嶇敓鏁堬紱false锛氫笉鍐嶆帓闄よ繖涓ら」锛堜究浜庤皟璇曪紱鍛戒腑瑙勫垯涔熸棤娉曠粫杩� true 鏃剁殑鎺掗櫎锛�
      */
     private boolean excludeAuditSelfPaths = true;
 
@@ -59,7 +79,7 @@
     public List<String> getEffectiveExcludePrefixes() {
         List<String> list = excludePathPrefixes == null ? new ArrayList<>() : new ArrayList<>(excludePathPrefixes);
         if (!isExcludeAuditSelfPaths()) {
-            list.removeIf(p -> "/httpAuditLog".equals(p) || "/httpAuditRule".equals(p));
+            list.removeIf(p -> "/httpAuditLog".equals(p) || "/httpAuditRule".equals(p) || "/httpAuditSysConfig".equals(p));
         }
         return list;
     }
@@ -106,6 +126,34 @@
         return HttpAuditDbConfigHolder.getPathDescriptions(pathDescriptions);
     }
 
+    public int resolveLogStorageMode() {
+        if (logStorageMode == 2 || logStorageMode == 3) {
+            return logStorageMode;
+        }
+        return 1;
+    }
+
+    public boolean usesMysqlLogStorage() {
+        int m = resolveLogStorageMode();
+        return m == 1 || m == 3;
+    }
+
+    public boolean usesOpenSearchLogStorage() {
+        int m = resolveLogStorageMode();
+        return m == 2 || m == 3;
+    }
+
+    @Data
+    public static class OpenSearch {
+        private List<String> uris = new ArrayList<>(Collections.singletonList("localhost:9200"));
+        private String scheme = "http";
+        private String username = "";
+        private String password = "";
+        private String indexName = "http_audit_log";
+        private Duration connectTimeout = Duration.ofSeconds(5);
+        private Duration socketTimeout = Duration.ofSeconds(30);
+    }
+
     private static List<String> defaultExcludes() {
         List<String> list = new ArrayList<>();
         list.add("/actuator");
@@ -120,6 +168,8 @@
         list.add("/static/");
         list.add("/httpAuditLog");
         list.add("/httpAuditRule");
+        list.add("/httpAuditSysConfig");
+        list.add("/http-audit/");
         return list;
     }
 

--
Gitblit v1.9.1