package com.zy.common.config; import jakarta.servlet.FilterChain; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.util.ContentCachingRequestWrapper; import java.io.IOException; @Component @Order(Ordered.HIGHEST_PRECEDENCE) public class RequestBodyCacheFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { if (request instanceof ContentCachingRequestWrapper) { filterChain.doFilter(request, response); return; } ContentCachingRequestWrapper requestWrapper = new ContentCachingRequestWrapper(request); filterChain.doFilter(requestWrapper, response); } }