Logic I have to implement is logging all requests with body served to DB.
So I decided to use: afterCompletion method of HandlerInterceptor
This is quite an old thread but for the sake of people who looking for a way to get RequestBody and ResponseBody from Interceptor. Here is how I got it working.
RequestBody, can simply use IOUtils:
String requestBody= IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
ResponseBody, I had to used HttpServletResponseCopier:
ServletLoggingFilter.HttpServletResponseCopier copier = (ServletLoggingFilter.HttpServletResponseCopier) response;
String responseBody = new String(copier.getCopy());