RM-3293 RM Audit History does not log Cutoff

This commit is contained in:
Mihai Cozma
2016-06-15 15:42:11 +03:00
parent c838cb2aaf
commit 60d2a00644
3 changed files with 37 additions and 26 deletions

View File

@@ -17,6 +17,8 @@ imap.server.attachments.extraction.enabled=false
#
audit.enabled=true
audit.rm.enabled=true
audit.rm.runasadmin=false
#audit.filter.alfresco-access.transaction.user=~null;.*
#
# Extended permission service cache sizing

View File

@@ -59,6 +59,7 @@
<property name="jobDataAsMap">
<map>
<entry key="jobName" value="dispositionLifecycle"/>
<entry key="runAsAdmin" value="${audit.rm.runasadmin}"/>
<entry key="jobLockService">
<ref bean="jobLockService" />
</entry>

View File

@@ -42,12 +42,12 @@ import org.apache.commons.logging.LogFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
/**
* Base records management job implementation.
* <p>
* Delegates job execution and ensures locking
* is enforced.
* Delegates job execution and ensures locking is enforced.
*
* @author Roy Wetherall
*/
@@ -55,6 +55,9 @@ public class RecordsManagementJob implements Job
{
private static Log logger = LogFactory.getLog(RecordsManagementJob.class);
/** indicates whether the audit history should be run as admin or not */
private boolean runAsAdmin = false;
private static final long DEFAULT_TIME = 30000L;
private JobLockService jobLockService;
@@ -85,7 +88,6 @@ public class RecordsManagementJob implements Job
}
}
/**
* Attempts to get the lock. If the lock couldn't be taken, then <tt>null</tt> is returned.
*
@@ -108,26 +110,20 @@ public class RecordsManagementJob implements Job
{
// get the job lock service
jobLockService = (JobLockService) context.getJobDetail().getJobDataMap().get("jobLockService");
if (jobLockService == null)
{
throw new AlfrescoRuntimeException("Job lock service has not been specified.");
}
if (jobLockService == null) { throw new AlfrescoRuntimeException("Job lock service has not been specified."); }
// get the job executer
jobExecuter = (RecordsManagementJobExecuter) context.getJobDetail().getJobDataMap().get("jobExecuter");
if (jobExecuter == null)
{
throw new AlfrescoRuntimeException("Job executer has not been specified.");
}
if (jobExecuter == null) { throw new AlfrescoRuntimeException("Job executer has not been specified."); }
// get the job name
jobName = (String) context.getJobDetail().getJobDataMap().get("jobName");
if (jobName == null)
{
throw new AlfrescoRuntimeException("Job name has not been specified.");
}
if (jobName == null) { throw new AlfrescoRuntimeException("Job name has not been specified."); }
setRunAsAdmin(Boolean.parseBoolean((String) context.getJobDetail().getJobDataMap().get("runAsAdmin")));
final LockCallback lockCallback = new LockCallback();
AuthenticationUtil.runAs(new RunAsWork<Void>()
{
public Void doWork()
@@ -154,7 +150,8 @@ public class RecordsManagementJob implements Job
// Ignore
if (logger.isDebugEnabled())
{
logger.debug("Lock release failed: " + getLockQName() + ": " + lockToken + "(" + e.getMessage() + ")");
logger.debug("Lock release failed: " + getLockQName() + ": " + lockToken + "("
+ e.getMessage() + ")");
}
}
}
@@ -163,6 +160,17 @@ public class RecordsManagementJob implements Job
// return
return null;
}
}, AuthenticationUtil.getSystemUserName());
}, this.runAsAdmin ? AuthenticationUtil.getAdminUserName() : AuthenticationUtil.getSystemUserName());
}
public boolean isRunAsAdmin()
{
return runAsAdmin;
}
public void setRunAsAdmin(boolean runAsAdmin)
{
this.runAsAdmin = runAsAdmin;
}
}