
se.wfh.libs.common.web.application.MdcSetupFiler Maven / Gradle / Ivy
package se.wfh.libs.common.web.application;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import se.wfh.libs.common.web.util.ApplicationHelper;
public class MdcSetupFiler implements Filter {
private static final Logger LOGGER = LoggerFactory
.getLogger(MdcSetupFiler.class);
private static final String UID_KEY = "uid";
private static final String IP_KEY = "ip";
@Override
public void doFilter(final ServletRequest request,
final ServletResponse response, final FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = ((HttpServletRequest) request);
setupMDC(req);
try {
LOGGER.debug("Request: {}?{}", req.getRequestURI(), req.getQueryString());
chain.doFilter(request, response);
} finally {
tearDownMDC(req);
}
}
private void tearDownMDC(final HttpServletRequest request) {
MDC.remove(UID_KEY);
MDC.remove(IP_KEY);
}
private void setupMDC(final HttpServletRequest request) {
MDC.put(UID_KEY, String.valueOf(ApplicationHelper
.getUserId(ApplicationHelper.getSession(request))));
MDC.put(IP_KEY, ApplicationHelper.getIp(request));
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// nothing to do here
}
@Override
public void destroy() {
// nothing to do here
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy