修复resp重复写BUG

This commit is contained in:
2026-04-25 16:42:12 +08:00
parent c147776a41
commit 94d003e895

View File

@@ -97,29 +97,24 @@ public class HttpLogFilter extends BaseFilter implements Ordered, BaseParams {
// 记录请求日志 // 记录请求日志
LogBus.init(LogLevel.INFO, LogBusBaseType.HTTP_REQUEST).data(log).save(); LogBus.init(LogLevel.INFO, LogBusBaseType.HTTP_REQUEST).data(log).save();
// 包装请求 // 包装请求和响应
ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request, DEFAULT_CACHE_LIMIT); ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request, DEFAULT_CACHE_LIMIT);
// 响应数据
Object respData;
if (PathPatternUtils.match(RESP_WHITE_LIST, uri)) {
// 处理请求
filterChain.doFilter(requestWrapper, response);
respData = "ignore";
} else {
// 包装响应
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response); ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
// 处理请求 // 处理请求
filterChain.doFilter(requestWrapper, responseWrapper); filterChain.doFilter(requestWrapper, responseWrapper);
// 获取响应内容
respData = getContent(responseWrapper.getContentAsByteArray());
// 将内容复制回原始响应
responseWrapper.copyBodyToResponse();
}
// 获取请求参数 // 获取请求参数
Object reqParam = getContent(requestWrapper.getContentAsByteArray()); Object reqParam = getContent(requestWrapper.getContentAsByteArray());
Object respData;
if (!PathPatternUtils.match(RESP_WHITE_LIST, uri)) {
// 获取响应内容
respData = getContent(responseWrapper.getContentAsByteArray());
} else {
respData = "ignore";
}
// 将内容复制回原始响应
responseWrapper.copyBodyToResponse();
// 保存日志 // 保存日志
log.put("reqBody", reqParam); log.put("reqBody", reqParam);
log.put("respData", respData); log.put("respData", respData);