package org.synyx.urlaubsverwaltung.web; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import org.synyx.urlaubsverwaltung.security.SessionService; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Interceptor to add current user specific attributes like the Gravatar URL to every response. * * @author Aljona Murygina - murygina@synyx.de */ @Component public class UserInterceptor implements HandlerInterceptor { private final SessionService sessionService; @Autowired public UserInterceptor(SessionService sessionService) { this.sessionService = sessionService; } @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) { return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { if (modelAndView != null && !modelAndView.getViewName().startsWith("redirect:") && !modelAndView.getViewName().startsWith("login")) { modelAndView.addObject("signedInUser", sessionService.getSignedInUser()); } } @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) { // OK } }