У меня есть этот пружинный перехватчик с методами preHandle
и afterCompletion
:
@Slf4j
public class MyInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String identificationDemande = "";
try {
identificationDemande = new ObjectMapper().readTree(request.getInputStream()).path("test").asText();
} catch (IOException e) {
log.error("JSON format unvalid", e);
return true;
}
if (StringUtils.equals(identificationDemande, "1")) {
log.info("preHandle Test without forward");
return true;
}
RequestDispatcher dispatcher = request.getRequestDispatcher("newUrl");
dispatcher.forward(request, response);
return false;
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
log.info("after completion test");
}
}
Когда identificationDemande==1
и мой вызов веб-службы не перенаправляются, запускается метод aftercompletion
. Но когда вызывается identificationDemande!=1
и dispatcher.forward(request, response)
, тогда aftercompletion
не запускается ... Я знаю, что это швы, чтобы быть logi c, но есть ли способ, чтобы я мог также перехватывать эти перенаправленные вызовы после их завершения?