riship89 riship89 - 6 months ago 78
Java Question

spring boot adding http request interceptors

What is the right way to add HttpRequest interceptors in spring boot application? What I want to do is log requests and responses for every http request.

Spring boot documentation does not cover this topic at all. (http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/)

I found some web samples on how to do the same with older versions of spring, but those work with applicationcontext.xml. Please help.


Since you're using Spring Boot, I assume you'd prefer to rely on Spring's auto configuration where possible. To add additional custom configuration like your interceptors, just provide a configuration or bean of WebMvcConfigurerAdapter.

Here's an example of a config class:

public class WebMvcConfig extends WebMvcConfigurerAdapter {

  HandlerInterceptor yourInjectedInterceptor;

  public void addInterceptors(InterceptorRegistry registry) {
    // next two should be avoid -- tightly coupled and not very testable
    registry.addInterceptor(new YourInceptor());
    registry.addInterceptor(new HandlerInterceptor() {

NOTE do not annotate this with @EnableWebMvc, if you want to keep Spring Boots auto configuration for mvc.