Skip to content

Instantly share code, notes, and snippets.

@radutoev
Last active March 11, 2018 19:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radutoev/8f84f316b3c781b40c1ac66d35602fbb to your computer and use it in GitHub Desktop.
Save radutoev/8f84f316b3c781b40c1ac66d35602fbb to your computer and use it in GitHub Desktop.
@Component
public class EmailThreadContextInterceptor implements HandlerInterceptor {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
AccessToken accessToken;
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
if(httpServletRequest.getMethod().equals(HttpMethod.OPTIONS.name())) {
return true;
}
Enumeration<String> reqHeaders = httpServletRequest.getHeaderNames();
Set<String> headers = new HashSet<>();
while(reqHeaders.hasMoreElements()){
headers.add(reqHeaders.nextElement().toLowerCase());
}
if(headers.contains(HttpHeaders.AUTHORIZATION.toLowerCase())) {
MDC.put("userEmail", String.format("%s", accessToken.getEmail()));
}
return true;
}
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
logger.debug("post handle hook");
}
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
logger.debug("Clearing ThreadContext data");
MDC.clearAll();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment