Skip to content

Instantly share code, notes, and snippets.

@felzan
Created August 28, 2018 04:08
Show Gist options
  • Save felzan/4742fa76d15c1d0c70068de164dd3934 to your computer and use it in GitHub Desktop.
Save felzan/4742fa76d15c1d0c70068de164dd3934 to your computer and use it in GitHub Desktop.
Jax rs LogFilter
package com.felzan.filter;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.container.ContainerResponseContext;
import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.Context;
import javax.ws.rs.ext.Provider;
import org.apache.commons.io.IOUtils;
@Provider
public class LogFilter implements ContainerRequestFilter, ContainerResponseFilter {
private final Logger log = Logger.getLogger(this.getClass().getSimpleName());
@Context
private HttpServletRequest servletRequest;
@Override
public void filter(final ContainerRequestContext rc) throws IOException {
}
@Override
public void filter(ContainerRequestContext rc, ContainerResponseContext responseContext)
throws IOException {
// rc.setEntityStream(IOUtils.toInputStream(payload, "UTF-8"));
final String ip = rc.getHeaderString("X-Forwarded-For");
// // Print Headers
// // System.out.println(rc.getHeaders().toString());
// // Query param
// // System.out.println(servletRequest.getQueryString());
// // System.out.println(servletRequest.get);
BufferedInputStream stream = new BufferedInputStream(rc.getEntityStream());
String payload = IOUtils.toString(stream, "UTF-8");
log.info("[from: " + ip + "] [" + rc.getMethod() + "] " + rc.getUriInfo().getPath() + '?' + servletRequest.getQueryString() +
"\n" + payload);
// System.out.println(rc.getRequest().getMethod());
// System.out.println(responseContext.getEntity().toString());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment