不对目标是SwaggerUI及其相关资源的请求记录响应体,以阻止数据库体积快速膨胀

This commit is contained in:
2025-09-29 09:35:19 +08:00
parent 03c1b6828c
commit 3f93ff06f4
@@ -13,11 +13,17 @@ import xyz.thewhitedog9487.WebAPI.Data.Repository.AccessLogRepository;
import java.io.IOException; import java.io.IOException;
import java.time.Instant; import java.time.Instant;
import java.util.Collections; import java.util.Collections;
import java.util.List;
import java.util.Locale; import java.util.Locale;
@Slf4j @Slf4j
@Component @Component
public class LogClientInfo implements Filter { public class LogClientInfo implements Filter {
public static List<String> IgnorePaths = List.of(
"/favicon.ico",
"/swagger-ui",
"/v3/api-docs" );
@Autowired AccessLogRepository AccessLogRepository; @Autowired AccessLogRepository AccessLogRepository;
@Override @Override
@@ -49,7 +55,9 @@ public class LogClientInfo implements Filter {
null ); null );
Log = AccessLogRepository.save(Log); Log = AccessLogRepository.save(Log);
chain.doFilter(request, Response); chain.doFilter(request, Response);
var ResponseBody = new String( Response.getContentAsByteArray(), Response.getCharacterEncoding() ); var ResponseBody = IgnorePaths.stream()
.anyMatch( path -> HttpServletRequest.getRequestURI().startsWith(path) )
? null : new String( Response.getContentAsByteArray(), Response.getCharacterEncoding() );
Log.setResponseStatusCode(HttpServletResponse.getStatus()); Log.setResponseStatusCode(HttpServletResponse.getStatus());
Log.setResponseBody(ResponseBody); Log.setResponseBody(ResponseBody);
AccessLogRepository.save(Log); AccessLogRepository.save(Log);