/* * 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.ContainerRequestFilter; import javax.ws.rs.container.ContainerRequestFilter; import javax.ws.rs.container.ContainerRequestContext; import java.util.UUID; import javax.ws.rs.core.Context; import javax.ws.rs.core.SecurityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author dsmagadx */ public class AuditJerseyRequestFilter implements ContainerRequestFilter{ private static Logger log = LoggerFactory.getLogger(AuditJerseyRequestFilter.class); private @Context SecurityContext sc; @Override public void filter(ContainerRequestContext request) { String user; if( sc != null && sc.getUserPrincipal() != null ) { user = sc.getUserPrincipal().getName(); } else { user = "Unknown"; } AuditContext auditContext = new AuditContext(user, UUID.randomUUID().toString(), System.currentTimeMillis()) ; log.debug("AuditJerseyRequestFilter request for {} {} Transaction Id {} Start {}", new String[] { request.getMethod(), request.getUriInfo().getPath(), auditContext.getTransactionUuid(), String.valueOf(auditContext.getStartMilliseconds()) }); MtWilsonThreadLocal.set(auditContext); // return request; } }