use of org.apache.syncope.common.lib.types.AuditLoggerName in project syncope by apache.
the class ReportITCase method auditReport.
@Test
public void auditReport() throws IOException {
AuditLoggerName auditLoggerName = new AuditLoggerName(AuditElements.EventCategoryType.LOGIC, "UserLogic", null, "selfRead", AuditElements.Result.SUCCESS);
try {
LoggerTO loggerTO = new LoggerTO();
loggerTO.setKey(auditLoggerName.toLoggerName());
loggerTO.setLevel(LoggerLevel.DEBUG);
loggerService.update(LoggerType.AUDIT, loggerTO);
ImplementationTO auditReportlet = new ImplementationTO();
auditReportlet.setKey("UserReportletConf" + getUUIDString());
auditReportlet.setEngine(ImplementationEngine.JAVA);
auditReportlet.setType(ImplementationType.REPORTLET);
auditReportlet.setBody(POJOHelper.serialize(new AuditReportletConf("auditReportlet" + getUUIDString())));
Response response = implementationService.create(auditReportlet);
auditReportlet.setKey(response.getHeaderString(RESTHeaders.RESOURCE_KEY));
ReportTO report = new ReportTO();
report.setName("auditReport" + getUUIDString());
report.setActive(true);
report.getReportlets().add(auditReportlet.getKey());
report.setTemplate("sample");
report = createReport(report);
String execKey = execReport(report.getKey());
checkExport(execKey, ReportExecExportFormat.XML);
report = reportService.read(report.getKey());
assertNotNull(report.getLastExec());
} finally {
loggerService.delete(LoggerType.AUDIT, auditLoggerName.toLoggerName());
}
}
use of org.apache.syncope.common.lib.types.AuditLoggerName in project syncope by apache.
the class LoggerITCase method enableDisableAudit.
@Test
public void enableDisableAudit() {
AuditLoggerName auditLoggerName = new AuditLoggerName(EventCategoryType.LOGIC, ReportLogic.class.getSimpleName(), null, "deleteExecution", AuditElements.Result.FAILURE);
List<AuditLoggerName> audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
assertNotNull(audits);
assertFalse(audits.contains(auditLoggerName));
LoggerTO loggerTO = new LoggerTO();
loggerTO.setKey(auditLoggerName.toLoggerName());
loggerTO.setLevel(LoggerLevel.DEBUG);
loggerService.update(LoggerType.AUDIT, loggerTO);
audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
assertNotNull(audits);
assertTrue(audits.contains(auditLoggerName));
loggerService.delete(LoggerType.AUDIT, auditLoggerName.toLoggerName());
audits = LoggerWrapper.wrap(loggerService.list(LoggerType.AUDIT));
assertNotNull(audits);
assertFalse(audits.contains(auditLoggerName));
}
use of org.apache.syncope.common.lib.types.AuditLoggerName in project syncope by apache.
the class LoggerITCase method customAuditAppender.
@Test
public void customAuditAppender() throws IOException, InterruptedException {
try (InputStream propStream = getClass().getResourceAsStream("/core-test.properties")) {
Properties props = new Properties();
props.load(propStream);
String auditFilePath = props.getProperty("test.log.dir") + File.separator + "audit_for_Master_file.log";
String auditNoRewriteFilePath = props.getProperty("test.log.dir") + File.separator + "audit_for_Master_norewrite_file.log";
// 1. Enable audit for resource update -> catched by FileRewriteAuditAppender
AuditLoggerName auditLoggerResUpd = new AuditLoggerName(EventCategoryType.LOGIC, ResourceLogic.class.getSimpleName(), null, "update", AuditElements.Result.SUCCESS);
LoggerTO loggerTOUpd = new LoggerTO();
loggerTOUpd.setKey(auditLoggerResUpd.toLoggerName());
loggerTOUpd.setLevel(LoggerLevel.DEBUG);
loggerService.update(LoggerType.AUDIT, loggerTOUpd);
// 2. Enable audit for connector update -> NOT catched by FileRewriteAuditAppender
AuditLoggerName auditLoggerConnUpd = new AuditLoggerName(EventCategoryType.LOGIC, ConnectorLogic.class.getSimpleName(), null, "update", AuditElements.Result.SUCCESS);
LoggerTO loggerTOConnUpd = new LoggerTO();
loggerTOConnUpd.setKey(auditLoggerConnUpd.toLoggerName());
loggerTOConnUpd.setLevel(LoggerLevel.DEBUG);
loggerService.update(LoggerType.AUDIT, loggerTOConnUpd);
// 3. check that resource update is transformed and logged onto an audit file.
ResourceTO resource = resourceService.read(RESOURCE_NAME_CSV);
assertNotNull(resource);
resource.setPropagationPriority(100);
resourceService.update(resource);
ConnInstanceTO connector = connectorService.readByResource(RESOURCE_NAME_CSV, null);
assertNotNull(connector);
connector.setPoolConf(new ConnPoolConfTO());
connectorService.update(connector);
File auditTempFile = new File(auditFilePath);
// check audit_for_Master_file.log, it should contain only a static message
String auditLog = FileUtils.readFileToString(auditTempFile, Charset.defaultCharset());
assertTrue(StringUtils.contains(auditLog, "DEBUG Master.syncope.audit.[LOGIC]:[ResourceLogic]:[]:[update]:[SUCCESS]" + " - This is a static test message"));
File auditNoRewriteTempFile = new File(auditNoRewriteFilePath);
// check audit_for_Master_file.log, it should contain only a static message
String auditLogNoRewrite = FileUtils.readFileToString(auditNoRewriteTempFile, Charset.defaultCharset());
assertFalse(StringUtils.contains(auditLogNoRewrite, "DEBUG Master.syncope.audit.[LOGIC]:[ResourceLogic]:[]:[update]:[SUCCESS]" + " - This is a static test message"));
// clean audit_for_Master_file.log
FileUtils.writeStringToFile(auditTempFile, StringUtils.EMPTY, Charset.defaultCharset());
loggerService.delete(LoggerType.AUDIT, "syncope.audit.[LOGIC]:[ResourceLogic]:[]:[update]:[SUCCESS]");
resource = resourceService.read(RESOURCE_NAME_CSV);
assertNotNull(resource);
resource.setPropagationPriority(200);
resourceService.update(resource);
// check that nothing has been written to audit_for_Master_file.log
assertTrue(StringUtils.isEmpty(FileUtils.readFileToString(auditTempFile, Charset.defaultCharset())));
} catch (IOException e) {
fail("Unable to read/write log files" + e.getMessage());
}
}
use of org.apache.syncope.common.lib.types.AuditLoggerName in project syncope by apache.
the class TestFileRewriteAuditAppender method getEvents.
@Override
public Set<AuditLoggerName> getEvents() {
Set<AuditLoggerName> events = new HashSet<>();
events.add(new AuditLoggerName(AuditElements.EventCategoryType.LOGIC, ResourceLogic.class.getSimpleName(), null, "update", AuditElements.Result.SUCCESS));
return events;
}
use of org.apache.syncope.common.lib.types.AuditLoggerName in project syncope by apache.
the class TestFileAuditAppender method getEvents.
@Override
public Set<AuditLoggerName> getEvents() {
Set<AuditLoggerName> events = new HashSet<>();
events.add(new AuditLoggerName(AuditElements.EventCategoryType.LOGIC, ResourceLogic.class.getSimpleName(), null, "create", AuditElements.Result.SUCCESS));
events.add(new AuditLoggerName(AuditElements.EventCategoryType.LOGIC, ConnectorLogic.class.getSimpleName(), null, "update", AuditElements.Result.SUCCESS));
return events;
}
Aggregations