1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.fit.core.reference;
20
21 import java.util.HashSet;
22 import java.util.Set;
23 import org.apache.logging.log4j.core.appender.SyslogAppender;
24 import org.apache.logging.log4j.core.layout.PatternLayout;
25 import org.apache.logging.log4j.core.net.Facility;
26 import org.apache.logging.log4j.core.net.Protocol;
27 import org.apache.syncope.common.lib.types.AuditElements;
28 import org.apache.syncope.common.lib.types.AuditLoggerName;
29 import org.apache.syncope.core.logic.ConnectorLogic;
30 import org.apache.syncope.core.logic.ResourceLogic;
31 import org.apache.syncope.core.logic.audit.DefaultRewriteAuditAppender;
32
33 public class SyslogRewriteAuditAppender extends DefaultRewriteAuditAppender {
34
35 public SyslogRewriteAuditAppender(final String domain) {
36 super(domain);
37
38 targetAppender = SyslogAppender.newSyslogAppenderBuilder().
39 setName(getTargetAppenderName()).
40 setHost("localhost").
41 setPort(514).
42 setProtocol(Protocol.UDP).
43 setLayout(PatternLayout.newBuilder().withPattern("%d{ISO8601} %-5level %logger - %msg%n").build()).
44 setFacility(Facility.LOCAL1).
45 build();
46 }
47
48 @Override
49 public Set<AuditLoggerName> getEvents() {
50 Set<AuditLoggerName> events = new HashSet<>();
51 events.add(new AuditLoggerName(
52 AuditElements.EventCategoryType.LOGIC,
53 ResourceLogic.class.getSimpleName(),
54 null,
55 "update",
56 AuditElements.Result.SUCCESS));
57 events.add(new AuditLoggerName(
58 AuditElements.EventCategoryType.LOGIC,
59 ConnectorLogic.class.getSimpleName(),
60 null,
61 "update",
62 AuditElements.Result.SUCCESS));
63 events.add(new AuditLoggerName(
64 AuditElements.EventCategoryType.LOGIC,
65 ResourceLogic.class.getSimpleName(),
66 null,
67 "delete",
68 AuditElements.Result.SUCCESS));
69 return events;
70 }
71
72 @Override
73 public String getTargetAppenderName() {
74 return "audit_for_" + domain + "_syslog";
75 }
76 }