From 936dd65f69e1c9b17ed8abd4edf4c624cee68e23 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期日, 10 五月 2026 00:28:43 +0800
Subject: [PATCH] 日志优化
---
rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/admin/HttpAuditRuleAdminController.java | 6 ---
rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/props/HttpAuditProperties.java | 4 +-
rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/entity/HttpAuditRule.java | 2
rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/service/HttpAuditRuleServiceImpl.java | 52 +++++--------------------
4 files changed, 14 insertions(+), 50 deletions(-)
diff --git a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/admin/HttpAuditRuleAdminController.java b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/admin/HttpAuditRuleAdminController.java
index b0e3502..4f29154 100644
--- a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/admin/HttpAuditRuleAdminController.java
+++ b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/admin/HttpAuditRuleAdminController.java
@@ -140,12 +140,6 @@
if (StringUtils.isBlank(rule.getMatchMode())) {
rule.setMatchMode(HttpAuditRule.MODE_EQUAL);
}
- if (StringUtils.isBlank(rule.getPattern())) {
- rule.setPattern("*");
- }
- if (StringUtils.isBlank(rule.getDirection())) {
- rule.setDirection(HttpAuditRule.DIR_BOTH);
- }
}
private static R validate(HttpAuditRule rule) {
diff --git a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/entity/HttpAuditRule.java b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/entity/HttpAuditRule.java
index ee8e30d..3042153 100644
--- a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/entity/HttpAuditRule.java
+++ b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/entity/HttpAuditRule.java
@@ -11,7 +11,7 @@
import java.util.Date;
/**
- * HTTP 瀹¤鐧藉悕鍗曡鍒欙紙浠呭懡涓鍒欐椂鎵嶅啓瀹¤鏃ュ織锛屽彈 http-audit.whitelist-only 鎺у埗锛�
+ * HTTP 瀹¤鐧藉悕鍗曡鍒欙紙whitelist-only=true 鏃朵粎鍛戒腑鎵嶈惤搴擄紱record_all=1 浠呭湪璇ユ潯鍛戒腑鏃跺鏈潯璇锋眰/鍝嶅簲鎴柇鐢熸晥锛�
*/
@Data
@Accessors(chain = true)
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 3213b25..912ee46 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
@@ -27,7 +27,7 @@
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;
@@ -60,7 +60,7 @@
private List<String> excludePathPrefixes = defaultExcludes();
/**
- * true锛氶粯璁ゆ帓闄や腑鐨� /httpAuditLog銆�/httpAuditRule 浠嶇敓鏁堬紱false锛氫笉鍐嶆帓闄よ繖涓ら」锛堜究浜庤皟璇曪紱record_all 涔熸棤娉曠粫杩� true 鏃剁殑鎺掗櫎锛�
+ * true锛氶粯璁ゆ帓闄や腑鐨� /httpAuditLog銆�/httpAuditRule 浠嶇敓鏁堬紱false锛氫笉鍐嶆帓闄よ繖涓ら」锛堜究浜庤皟璇曪紱鍛戒腑瑙勫垯涔熸棤娉曠粫杩� true 鏃剁殑鎺掗櫎锛�
*/
private boolean excludeAuditSelfPaths = true;
diff --git a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/service/HttpAuditRuleServiceImpl.java b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/service/HttpAuditRuleServiceImpl.java
index 6fb558a..9f2b3d7 100644
--- a/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/service/HttpAuditRuleServiceImpl.java
+++ b/rsf-http-audit/src/main/java/com/vincent/rsf/httpaudit/service/HttpAuditRuleServiceImpl.java
@@ -18,7 +18,7 @@
import java.util.regex.Pattern;
/**
- * 瑙勫垯缂撳瓨锛涘叆绔�/鍑虹珯鎴栧叧绯伙紱record_all 鏃剁櫧鍚嶅崟涓嬩篃鍏ㄨ
+ * 瑙勫垯缂撳瓨锛涘叆绔�/鍑虹珯鎴栧叧绯伙紱record_all 浠呭湪璇ユ潯瑙勫垯鍛戒腑鏃跺鏈潯鏃ュ織鐢熸晥锛堥粯璁� -1 涓嶆埅鏂級
*/
@Slf4j
public class HttpAuditRuleServiceImpl extends ServiceImpl<HttpAuditRuleMapper, HttpAuditRule> implements HttpAuditRuleService {
@@ -68,28 +68,21 @@
@Override
public HttpAuditDecision decideInbound(HttpServletRequest request, String requestBody) {
if (!props.isWhitelistOnly()) {
- return HttpAuditDecision.yes(reqLimitFromRecordAllRow(), resLimitFromRecordAllRow());
+ return HttpAuditDecision.yes(null, null);
}
if (cache.isEmpty()) {
return HttpAuditDecision.SKIP;
- }
- HttpAuditRule allRow = firstRecordAllRule();
- if (allRow != null) {
- return HttpAuditDecision.yes(allRow.getRequestMaxChars(), allRow.getResponseMaxChars());
}
String path = HttpAuditSupport.safePath(request);
String ip = HttpAuditSupport.clientIp(request);
String body = requestBody == null ? "" : requestBody;
for (HttpAuditRule r : cache) {
- if (isRecordAll(r)) {
- continue;
- }
if (!appliesInbound(r)) {
continue;
}
try {
if (matchInbound(r, path, ip, body)) {
- return HttpAuditDecision.yes(r.getRequestMaxChars(), r.getResponseMaxChars());
+ return decisionForMatchedRule(r);
}
} catch (Exception e) {
log.debug("http-audit 瑙勫垯 id={} 鍖归厤寮傚父锛歿}", r.getId(), e.getMessage());
@@ -101,26 +94,19 @@
@Override
public HttpAuditDecision decideOutbound(String fullUrl, String method, String requestBody) {
if (!props.isWhitelistOnly()) {
- return HttpAuditDecision.yes(reqLimitFromRecordAllRow(), resLimitFromRecordAllRow());
+ return HttpAuditDecision.yes(null, null);
}
if (cache.isEmpty()) {
return HttpAuditDecision.SKIP;
}
- HttpAuditRule allRow = firstRecordAllRule();
- if (allRow != null) {
- return HttpAuditDecision.yes(allRow.getRequestMaxChars(), allRow.getResponseMaxChars());
- }
String body = requestBody == null ? "" : requestBody;
for (HttpAuditRule r : cache) {
- if (isRecordAll(r)) {
- continue;
- }
if (!appliesOutbound(r)) {
continue;
}
try {
if (matchOutbound(r, fullUrl, body)) {
- return HttpAuditDecision.yes(r.getRequestMaxChars(), r.getResponseMaxChars());
+ return decisionForMatchedRule(r);
}
} catch (Exception e) {
log.debug("http-audit 鍑虹珯瑙勫垯 id={} 鍖归厤寮傚父锛歿}", r.getId(), e.getMessage());
@@ -129,23 +115,13 @@
return HttpAuditDecision.SKIP;
}
- private Integer reqLimitFromRecordAllRow() {
- HttpAuditRule row = firstRecordAllRule();
- return row == null ? null : row.getRequestMaxChars();
- }
-
- private Integer resLimitFromRecordAllRow() {
- HttpAuditRule row = firstRecordAllRule();
- return row == null ? null : row.getResponseMaxChars();
- }
-
- private HttpAuditRule firstRecordAllRule() {
- for (HttpAuditRule r : cache) {
- if (isRecordAll(r)) {
- return r;
- }
+ private static HttpAuditDecision decisionForMatchedRule(HttpAuditRule r) {
+ if (isRecordAll(r)) {
+ Integer req = r.getRequestMaxChars() != null ? r.getRequestMaxChars() : -1;
+ Integer res = r.getResponseMaxChars() != null ? r.getResponseMaxChars() : -1;
+ return HttpAuditDecision.yes(req, res);
}
- return null;
+ return HttpAuditDecision.yes(r.getRequestMaxChars(), r.getResponseMaxChars());
}
private static boolean isRecordAll(HttpAuditRule r) {
@@ -161,17 +137,11 @@
}
private static boolean appliesInbound(HttpAuditRule r) {
- if (isRecordAll(r)) {
- return false;
- }
String d = dir(r);
return HttpAuditRule.DIR_IN.equals(d) || HttpAuditRule.DIR_BOTH.equals(d);
}
private static boolean appliesOutbound(HttpAuditRule r) {
- if (isRecordAll(r)) {
- return false;
- }
String d = dir(r);
return HttpAuditRule.DIR_OUT.equals(d) || HttpAuditRule.DIR_BOTH.equals(d);
}
--
Gitblit v1.9.1