/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.intel.mtwilson.audit.helper; import com.intel.mtwilson.audit.data.AuditContext; //import com.sun.jersey.spi.container.ContainerRequest; //import com.sun.jersey.spi.container.ContainerResponse; //import com.sun.jersey.spi.container.ContainerResponseFilter; import javax.ws.rs.container.ContainerResponseFilter; import javax.ws.rs.container.ContainerResponseContext; import javax.ws.rs.container.ContainerRequestContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author dsmagadx */ public class AuditJerseyResponseFilter implements ContainerResponseFilter { private static Logger log = LoggerFactory.getLogger(AuditJerseyResponseFilter.class); @Override public void filter(ContainerRequestContext request, ContainerResponseContext response) { long endTime = System.currentTimeMillis(); AuditContext auditContext = MtWilsonThreadLocal.get(); if( auditContext != null ) { log.debug("AuditJerseyResponseFilter request for {} {} Transaction Id {} End {} Time {} ", new String[] { request.getMethod(), request.getUriInfo().getPath(), auditContext.getTransactionUuid(), String.valueOf(endTime),String.valueOf(endTime -auditContext.getStartMilliseconds()) }); } // Remove the context from thread local MtWilsonThreadLocal.unset(); log.info("Removed the Audit context from thread local."); // return response; } }