The interceptor is the solution. It has preHandler and postHandler methods that will be called before and after each request, respectively. You can connect to each HTTPServletRequest object, as well as skip a few by digging it.
Here is a sample code:
@Component public class AuthCodeInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { // set few parameters to handle ajax request from different host response.addHeader("Access-Control-Allow-Origin", "*"); response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS"); response.addHeader("Access-Control-Max-Age", "1000"); response.addHeader("Access-Control-Allow-Headers", "Content-Type"); response.addHeader("Cache-Control", "private"); String reqUri = request.getRequestURI(); String serviceName = reqUri.substring(reqUri.lastIndexOf("/") + 1, reqUri.length()); if (serviceName.equals("SOMETHING")) { } return super.preHandle(request, response, handler); } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { super.postHandle(request, response, handler, modelAndView); } }
source share