@Override public void reindexEntry(AuditEventRecord record) { for (AuditService service : services) { if (service.supportsRetrieval()) { service.reindexEntry(record); } } }
@Override public void listRecordsIterative(String query, Map<String, Object> params, AuditResultHandler handler) { for (AuditService service : services) { if (service.supportsRetrieval()) { service.listRecordsIterative(query, params, handler); } } }
@Override public long countObjects(String query, Map<String, Object> params) { long count = 0; for (AuditService service : services) { if (service.supportsRetrieval()) { long c = service.countObjects(query, params); count += c; } } return count; }
protected void auditLogin(Task task) { AuditEventRecord record = new AuditEventRecord(AuditEventType.CREATE_SESSION, AuditEventStage.REQUEST); record.setInitiatorAndLoginParameter(task.getOwner()); record.setChannel(SchemaConstants.CHANNEL_WEB_SERVICE_URI); record.setTimestamp(System.currentTimeMillis()); record.setOutcome(OperationResultStatus.SUCCESS); auditService.audit(record, task); }
public Collection<ObjectDeltaOperation<? extends ObjectType>> getExecutionDeltas(int index) { AuditEventRecord executionRecord = getExecutionRecord(index); Collection<ObjectDeltaOperation<? extends ObjectType>> deltas = executionRecord.getDeltas(); assert deltas != null : "Execution audit record has null deltas"; return deltas; }
public void addReferenceValue(String key, @NotNull PrismReferenceValue prv) { Validate.notNull(prv, "Reference value must not be null"); addReferenceValue(key, new AuditReferenceValue(prv)); }
@Override public void audit(AuditEventRecord record, Task task, OperationResult result) throws SecurityViolationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { authorize(ModelAuthorizationAction.AUDIT_RECORD, task, result); auditService.audit(record, task); }
@Override public void cleanupAudit(CleanupPolicyType policy, OperationResult parentResult) { Validate.notNull(policy, "Cleanup policy must not be null."); Validate.notNull(parentResult, "Operation result must not be null."); for (AuditService service : services) { service.cleanupAudit(policy, parentResult); } }
@Override public String debugDump() { return debugDump(0); }
@Override public String toString() { return "AUDIT[" + formatTimestamp(timestamp) + " eid=" + eventIdentifier + " sid=" + sessionIdentifier + ", tid=" + taskIdentifier + " toid=" + taskOID + ", hid=" + hostIdentifier + ", nid=" + nodeIdentifier + ", raddr=" + remoteHostAddress + ", I=" + formatObject(initiator) + ", A=" + formatObject(attorney) + ", T=" + formatReference(target) + ", TO=" + formatObject(targetOwner) + ", et=" + eventType + ", es=" + eventStage + ", D=" + deltas + ", ch="+ channel +", o=" + outcome + ", r=" + result + ", p=" + parameter + ", m=" + message + ", prop=" + properties + ", ref=" + references + "]"; }
public void assertExecutionOutcome(OperationResultStatus expectedStatus) { List<AuditEventRecord> executionRecords = getExecutionRecords(); for (AuditEventRecord executionRecord: executionRecords) { assert executionRecord.getOutcome() == expectedStatus : "Expected execution outcome "+expectedStatus+" in audit record but it was "+executionRecord.getOutcome(); } }
@Override public List<AuditEventRecord> listRecords(String query, Map<String, Object> params, Task task, OperationResult result) throws SecurityViolationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { authorize(ModelAuthorizationAction.AUDIT_READ, task, result); return auditService.listRecords(query, params); }
@Override public boolean supportsRetrieval() { for (AuditService service : services) { if (service.supportsRetrieval()) { return true; } } return false; } }
public AuditEventRecordType createAuditEventRecordType(){ return createAuditEventRecordType(false); }
@Override public boolean handle(AuditEventRecord auditRecord) { auditService.reindexEntry(auditRecord); processedObjects.incrementAndGet(); return true; }
@Override public long countObjects(String query, Map<String, Object> params, Task task, OperationResult result) throws SecurityViolationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { authorize(ModelAuthorizationAction.AUDIT_READ, task, result); return auditService.countObjects(query, params); }
private String formatReference(PrismReferenceValue refVal) { if (refVal == null) { return "null"; } if (refVal.getObject() != null) { return formatObject(refVal.getObject()); } return refVal.toString(); }
protected void auditLogout(Task task) { AuditEventRecord record = new AuditEventRecord(AuditEventType.TERMINATE_SESSION, AuditEventStage.REQUEST); record.setInitiatorAndLoginParameter(task.getOwner()); record.setChannel(SchemaConstants.CHANNEL_WEB_SERVICE_URI); record.setTimestamp(System.currentTimeMillis()); record.setOutcome(OperationResultStatus.SUCCESS); auditService.audit(record, task); }
@Override public void cleanupAudit(CleanupPolicyType policy, Task task, OperationResult parentResult) throws SecurityViolationException, SchemaException, ObjectNotFoundException, ExpressionEvaluationException, CommunicationException, ConfigurationException { authorize(ModelAuthorizationAction.AUDIT_MANAGE, task, parentResult); auditService.cleanupAudit(policy, parentResult); }
@Override public boolean supportsRetrieval() { return auditService.supportsRetrieval(); }