刘帅
2026-09-17 12732229b53d2280074cea3f91f3aa67b578ac7f
cloud-server-gateway/src/main/java/cn/mb/cloud/gateway/filter/AccountAuditGlobalFilter.java
@@ -65,7 +65,8 @@
            audit.put("requestMethod", request.getMethodValue());
            audit.put("requestUri", uri);
            audit.put("requestParams", maskedQuery(request));
            audit.put("userAccount", mask(username(request)));
            // 审计账号用于追溯操作人,必须保留原始账号;手机号、证件号等请求参数仍按规则脱敏。
            audit.put("userAccount", username(request));
            audit.put("clientIp", clientIp(request));
            int status = exchange.getResponse().getStatusCode() == null ? 200 : exchange.getResponse().getStatusCode().value();
            audit.put("result", status < 400 ? "SUCCESS" : "FAIL");
@@ -122,6 +123,5 @@
                key.toLowerCase().matches(".*(password|token|secret|idcard|bank|phone|mobile).*") ? "***" : value));
        return JSON.toJSONString(values);
    }
    private String mask(String value) { return StringUtils.isBlank(value) ? null : value.length() <= 4 ? "***" : value.substring(0, 3) + "***" + value.substring(value.length() - 2); }
    private String clientIp(ServerHttpRequest request) { String value = request.getHeaders().getFirst("X-Forwarded-For"); return StringUtils.isBlank(value) ? String.valueOf(request.getRemoteAddress()) : value.split(",")[0].trim(); }
}