@WebFilter
@Slf4j
public class RefactorRequestFilter implements Filter {
@Autowired
private HandlerExceptionResolver handlerExceptionResolver;
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
if (request.getRequestURI().contains("/v2/cast")) {
final String body = getBodyString(request);
byte[] data;
try {
data = handler(body);
} catch (Exception e) {
handlerExceptionResolver.resolveException(request, response, null, new ErrorException(e.getMessage()));
return;
}
chain.doFilter(new RefactorRequestWrapper(request, data), response);
} else {
chain.doFilter(request, response);
}
}