package edu.ualberta.med.biobank.server.logging.user; import org.acegisecurity.context.SecurityContextHolder; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; import org.apache.log4j.Logger; /** * this is call before any call into the ApplicationService instance. * * See use application-config.xml. */ public class BiobankLogProxy implements MethodInterceptor { private static Logger log = Logger.getLogger(BiobankLogProxy.class .getName()); @Override public Object invoke(MethodInvocation invocation) throws Throwable { String userName = null; try { userName = SecurityContextHolder.getContext().getAuthentication() .getName(); } catch (NullPointerException e) { log.error("Error: Unable to retrieve userName from SecurityContext; setting userName to 'dummy'"); //$NON-NLS-1$ userName = "dummy"; //$NON-NLS-1$ } log.debug("userName has been set to: " + userName); //$NON-NLS-1$ UserInfoHelper.setUserName(userName); Object value = invocation.proceed(); UserInfoHelper.setUserName(null); return value; } }