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);
|
}
|
}
|