package com.vincent.rsf.httpaudit.props; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * HTTP 审计配置 */ @Data @ConfigurationProperties(prefix = "http-audit") public class HttpAuditProperties { private boolean enabled = true; /** 查询类响应最多保留字符数 */ private int queryResponseMaxChars = 500; /** 非查询类响应最多入库字节(超出截断并标记) */ private int maxResponseStoreChars = 65535; /** 请求体缓存上限(字节) */ private int maxRequestCacheBytes = 2 * 1024 * 1024; /** 响应体缓存上限(字节) */ private int maxResponseCacheBytes = 2 * 1024 * 1024; /** 不落库的路径前缀 */ private List excludePathPrefixes = defaultExcludes(); /** 视为外部调用的路径前缀(其余为内部) */ private List externalPathPrefixes = defaultExternal(); /** 路径 -> 功能描述(按最长路径前缀匹配) */ private Map pathDescriptions = new LinkedHashMap<>(); private static List defaultExcludes() { List list = new ArrayList<>(); list.add("/actuator"); list.add("/swagger"); list.add("/webjars"); list.add("/v2/api-docs"); list.add("/v3/api-docs"); list.add("/doc.html"); list.add("/druid"); list.add("/error"); list.add("/favicon.ico"); list.add("/static/"); list.add("/httpAuditLog"); return list; } private static List defaultExternal() { List list = new ArrayList<>(); list.add("/erp"); list.add("/cloudwms"); return list; } }