Search in sources :

Example 81 with AuditEventRecord

use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.

the class AuditCleanupPerformanceTest method prepareAuditEventRecords.

private void prepareAuditEventRecords() throws Exception {
    long start = System.currentTimeMillis();
    for (int i = 0; i < RECORDS; ) {
        AuditEventRecord record = new AuditEventRecord();
        record.addDelta(createObjectDeltaOperation(i));
        record.setTimestamp(System.currentTimeMillis());
        record.addPropertyValue("prop1", "val1");
        record.addReferenceValue("ref1", ObjectTypeUtil.createObjectRef("oid1", ObjectTypes.USER).asReferenceValue());
        auditService.audit(record, new NullTaskImpl(), new OperationResult("dummy"));
        i++;
        if (i % 1000 == 0 || i == RECORDS) {
            long duration = System.currentTimeMillis() - start;
            System.out.println(i + " records created in " + duration + " ms (" + duration / i + " ms per record)");
        }
    }
    assertThat(count(QAuditEventRecordMapping.get())).isEqualTo(RECORDS);
}
Also used : OperationResult(com.evolveum.midpoint.schema.result.OperationResult) AuditEventRecord(com.evolveum.midpoint.audit.api.AuditEventRecord) NullTaskImpl(com.evolveum.midpoint.task.api.test.NullTaskImpl)

Example 82 with AuditEventRecord

use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.

the class AuditTest method test100AuditSimple.

@Test
public void test100AuditSimple() throws QueryException {
    OperationResult result = createOperationResult();
    when();
    AuditEventRecord record = new AuditEventRecord();
    record.addPropertyValue("prop1", "val1.1");
    record.addPropertyValue("prop1", "val1.2");
    record.addPropertyValue("prop2", "val2");
    record.addPropertyValue("prop3", null);
    AuditReferenceValue refVal1_1 = new AuditReferenceValue("oid1.1", UserType.COMPLEX_TYPE, poly("user1.1"));
    AuditReferenceValue refVal1_2 = new AuditReferenceValue("oid1.2", RoleType.COMPLEX_TYPE, poly("role1.2"));
    AuditReferenceValue refVal2 = new AuditReferenceValue("oid2", null, poly("object2"));
    AuditReferenceValue refVal3 = new AuditReferenceValue();
    record.addReferenceValue("ref1", refVal1_1);
    record.addReferenceValue("ref1", refVal1_2);
    record.addReferenceValue("ref2", refVal2);
    record.addReferenceValue("ref3", refVal3);
    logger.info("Adding audit record {}", record);
    auditService.audit(record, new NullTaskImpl(), result);
    then();
    System.out.println("Record written:\n" + record.debugDump());
    System.out.println("Repo ID: " + record.getRepoId());
    MAuditEventRecord loaded = getAuditEventRecord(1, 0);
    System.out.println("Record loaded:\n" + loaded);
    assertThat(loaded.properties).withFailMessage("Wrong # of properties").hasSize(3);
    assertThat(loaded.properties.get("prop1")).describedAs("prop1 values").containsExactlyInAnyOrder("val1.1", "val1.2");
    assertThat(loaded.properties.get("prop2")).describedAs("prop2 values").containsExactlyInAnyOrder("val2");
    assertThat(loaded.properties.get("prop3")).describedAs("prop3 values").containsExactlyInAnyOrder((String) null);
    assertThat(loaded.refValues).withFailMessage("Wrong # of references").hasSize(3);
    assertThat(loaded.refValues.get("ref1")).describedAs("ref1 values").flatExtracting(this::toAuditReferenceValue).containsExactlyInAnyOrder(refVal1_1, refVal1_2);
    assertThat(loaded.refValues.get("ref2")).describedAs("ref2 values").flatExtracting(this::toAuditReferenceValue).containsExactlyInAnyOrder(refVal2);
    assertThat(loaded.refValues.get("ref3")).describedAs("ref3 values").flatExtracting(this::toAuditReferenceValue).containsExactlyInAnyOrder(refVal3);
}
Also used : MAuditEventRecord(com.evolveum.midpoint.repo.sql.audit.beans.MAuditEventRecord) OperationResult(com.evolveum.midpoint.schema.result.OperationResult) AuditReferenceValue(com.evolveum.midpoint.audit.api.AuditReferenceValue) QAuditEventRecord(com.evolveum.midpoint.repo.sql.audit.querymodel.QAuditEventRecord) AuditEventRecord(com.evolveum.midpoint.audit.api.AuditEventRecord) MAuditEventRecord(com.evolveum.midpoint.repo.sql.audit.beans.MAuditEventRecord) NullTaskImpl(com.evolveum.midpoint.task.api.test.NullTaskImpl) Test(org.testng.annotations.Test)

Example 83 with AuditEventRecord

use of com.evolveum.midpoint.audit.api.AuditEventRecord in project midpoint by Evolveum.

the class AuditCleanupTest method prepareAuditRecords.

/**
 * Prepares `count` audit records with timestamp starting with specified value
 * and going up by second for each item.
 * Removes any previous audit records for consistency.
 */
private void prepareAuditRecords(long startTimestamp, int count, OperationResult result) throws SchemaException {
    clearAudit();
    long timestamp = startTimestamp;
    for (int i = 1; i <= count; i++) {
        AuditEventRecord record = new AuditEventRecord();
        record.setParameter(String.valueOf(i));
        record.setTimestamp(timestamp);
        record.getCustomColumnProperty().put("foo", "foo-value");
        // to check that child tables (delta and refs) are also cleared
        ObjectDeltaOperation<UserType> delta = new ObjectDeltaOperation<>();
        delta.setObjectDelta(prismContext.deltaFor(UserType.class).item(UserType.F_FULL_NAME).replace(PolyString.fromOrig("newVal")).asObjectDelta(UUID.randomUUID().toString()));
        record.addDelta(delta);
        record.addReferenceValue("ref1", ObjectTypeUtil.createObjectRef(UUID.randomUUID().toString(), ObjectTypes.USER).asReferenceValue());
        auditService.audit(record, NullTaskImpl.INSTANCE, result);
        timestamp += 1000;
    }
}
Also used : ObjectDeltaOperation(com.evolveum.midpoint.schema.ObjectDeltaOperation) QAuditEventRecord(com.evolveum.midpoint.repo.sqale.audit.qmodel.QAuditEventRecord) AuditEventRecord(com.evolveum.midpoint.audit.api.AuditEventRecord) UserType(com.evolveum.midpoint.xml.ns._public.common.common_3.UserType)

Aggregations

AuditEventRecord (com.evolveum.midpoint.audit.api.AuditEventRecord)83 OperationResult (com.evolveum.midpoint.schema.result.OperationResult)28 Task (com.evolveum.midpoint.task.api.Task)18 Test (org.testng.annotations.Test)18 ObjectDeltaOperation (com.evolveum.midpoint.schema.ObjectDeltaOperation)11 SchemaException (com.evolveum.midpoint.util.exception.SchemaException)9 ObjectDelta (com.evolveum.midpoint.prism.delta.ObjectDelta)8 PrismObject (com.evolveum.midpoint.prism.PrismObject)7 ObjectType (com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType)6 ArrayList (java.util.ArrayList)6 MidPointPrincipal (com.evolveum.midpoint.security.api.MidPointPrincipal)5 NullTaskImpl (com.evolveum.midpoint.task.api.test.NullTaskImpl)5 PolyString (com.evolveum.midpoint.prism.polystring.PolyString)4 MAuditEventRecord (com.evolveum.midpoint.repo.sql.audit.beans.MAuditEventRecord)4 AuditResultHandler (com.evolveum.midpoint.audit.api.AuditResultHandler)3 MidpointAuthentication (com.evolveum.midpoint.authentication.api.config.MidpointAuthentication)3 Message (com.evolveum.midpoint.notifications.api.transports.Message)3 QAuditEventRecord (com.evolveum.midpoint.repo.sql.audit.querymodel.QAuditEventRecord)3 ObjectNotFoundException (com.evolveum.midpoint.util.exception.ObjectNotFoundException)3 AuditEventRecordType (com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType)3