use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.
the class SqaleAuditSearchIterativeTest method initObjects.
@BeforeClass
public void initObjects() throws Exception {
sqaleAuditService = ((AuditServiceProxy) auditService).getImplementation(SqaleAuditService.class);
performanceMonitor = sqaleAuditService.getPerformanceMonitor();
aer = QAuditEventRecordMapping.get().defaultAlias();
clearAudit();
OperationResult result = createOperationResult();
long timestamp = startTimestamp;
Random random = new Random();
// we will create two full "pages" of data
for (int i = 1; i <= ITERATION_PAGE_SIZE * 2; i++) {
AuditEventRecord record = new AuditEventRecord();
record.setParameter(paramString(i));
record.setTimestamp(timestamp);
auditService.audit(record, NullTaskImpl.INSTANCE, result);
// 50% chance to change the timestamp by up to a second
timestamp += random.nextInt(2) * random.nextInt(1000);
}
}
use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.
the class PendingAuditRecords method createCaseLevelRecord.
private AuditEventRecord createCaseLevelRecord(@NotNull AuditEventStage stage, @NotNull OperationResult result) {
CaseType aCase = operation.getCurrentCase();
AuditEventRecord record = new AuditEventRecord();
record.setEventType(WORKFLOW_PROCESS_INSTANCE);
record.setEventStage(stage);
record.setOutcome(OperationResultStatus.SUCCESS);
// set real principal in case of explicitly requested process termination (MID-4263)
PrismObject<UserType> requester = beans.miscHelper.getRequesterIfExists(aCase, result);
record.setInitiator(requester);
// TODO we could be more strict and allow non-existence of object only in case of "object add" delta. But we are not.
ObjectReferenceType objectRef = resolveIfNeeded(aCase.getObjectRef(), true, result);
ObjectReferenceType targetRef = resolveIfNeeded(aCase.getTargetRef(), false, result);
record.setTargetRef(objectRef.asReferenceValue());
record.addReferenceValueIgnoreNull(AuditingConstants.AUDIT_OBJECT, objectRef);
record.addReferenceValueIgnoreNull(AuditingConstants.AUDIT_TARGET, targetRef);
if (stage == EXECUTION) {
String stageInfo;
if (operation.doesUseStages()) {
stageInfo = ApprovalContextUtil.getCompleteStageInfo(aCase);
record.setParameter(stageInfo);
} else {
stageInfo = null;
}
// FIXME
String answer = ApprovalUtils.getAnswerNice(aCase);
record.setResult(answer);
record.setMessage(stageInfo != null ? stageInfo + " : " + answer : answer);
if (operation.doesUseStages()) {
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_NUMBER, aCase.getStageNumber());
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_COUNT, operation.getExpectedNumberOfStages());
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_NAME, ApprovalContextUtil.getStageName(aCase));
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_DISPLAY_NAME, ApprovalContextUtil.getStageDisplayName(aCase));
}
}
record.addPropertyValue(AuditingConstants.AUDIT_CASE_OID, aCase.getOid());
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_REQUESTER_COMMENT, ApprovalContextUtil.getRequesterComment(aCase));
return record;
}
use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.
the class PendingAuditRecords method addCaseLevelRecord.
private void addCaseLevelRecord(AuditEventStage stage, OperationResult result) {
AuditEventRecord auditRecord = createCaseLevelRecord(stage, result);
extension.enrichCaseRecord(auditRecord, operation, result);
records.add(auditRecord);
}
use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.
the class PendingAuditRecords method addWorkItemCreation.
// endregion
// region Work item level
public void addWorkItemCreation(@NotNull CaseWorkItemType workItem, @NotNull OperationResult result) {
// workItem contains taskRef, assignee, originalAssignee, candidates resolved (if possible)
CaseType aCase = operation.getCurrentCase();
AuditEventRecord record = prepareWorkItemAuditRecordCommon(workItem, AuditEventStage.REQUEST, result);
record.setInitiator(beans.miscHelper.getRequesterIfExists(aCase, result));
if (operation.doesUseStages()) {
record.setMessage(ApprovalContextUtil.getCompleteStageInfo(aCase));
}
extension.enrichWorkItemCreatedAuditRecord(record, workItem, operation, result);
records.add(record);
}
use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.
the class PendingAuditRecords method prepareWorkItemAuditRecordCommon.
private AuditEventRecord prepareWorkItemAuditRecordCommon(@NotNull CaseWorkItemType workItem, @NotNull AuditEventStage stage, @NotNull OperationResult result) {
CaseType aCase = operation.getCurrentCase();
// FIXME!!!
ApprovalContextType wfc = aCase.getApprovalContext();
AuditEventRecord record = new AuditEventRecord();
record.setEventType(AuditEventType.WORK_ITEM);
record.setEventStage(stage);
// TODO we could be more strict and allow non-existence of object only in case of "object add" delta. But we are not.
ObjectReferenceType objectRef = resolveIfNeeded(aCase.getObjectRef(), true, result);
record.setTargetRef(objectRef.asReferenceValue());
record.setOutcome(OperationResultStatus.SUCCESS);
if (operation.doesUseStages()) {
record.setParameter(ApprovalContextUtil.getCompleteStageInfo(aCase));
}
record.addReferenceValueIgnoreNull(AuditingConstants.AUDIT_OBJECT, objectRef);
record.addReferenceValueIgnoreNull(AuditingConstants.AUDIT_TARGET, resolveIfNeeded(aCase.getTargetRef(), false, result));
record.addReferenceValueIgnoreNull(AuditingConstants.AUDIT_ORIGINAL_ASSIGNEE, resolveIfNeeded(workItem.getOriginalAssigneeRef(), false, result));
record.addReferenceValues(AuditingConstants.AUDIT_CURRENT_ASSIGNEE, resolveIfNeeded(workItem.getAssigneeRef(), false, result));
if (operation.doesUseStages()) {
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_NUMBER, workItem.getStageNumber());
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_COUNT, ApprovalContextUtil.getStageCount(wfc));
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_NAME, ApprovalContextUtil.getStageName(aCase));
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_STAGE_DISPLAY_NAME, ApprovalContextUtil.getStageDisplayName(aCase));
}
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_ESCALATION_LEVEL_NUMBER, WorkItemTypeUtil.getEscalationLevelNumber(workItem));
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_ESCALATION_LEVEL_NAME, WorkItemTypeUtil.getEscalationLevelName(workItem));
record.addPropertyValueIgnoreNull(AuditingConstants.AUDIT_ESCALATION_LEVEL_DISPLAY_NAME, WorkItemTypeUtil.getEscalationLevelDisplayName(workItem));
record.addPropertyValue(AuditingConstants.AUDIT_WORK_ITEM_ID, WorkItemId.create(aCase.getOid(), workItem.getId()).asString());
return record;
}
Aggregations