Skip to content

Commit d05f323

Browse files
feat[backend](log_events): added logs on every system admin operation
1 parent ca9e075 commit d05f323

20 files changed

+364
-74
lines changed

backend/src/main/java/com/park/utmstack/domain/UtmServerModule.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.park.utmstack.domain;
22

33

4+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
5+
46
import javax.persistence.*;
57
import java.io.Serializable;
8+
import java.util.Map;
69

710
/**
811
* A UtmServerModule.
912
*/
1013
@Entity
1114
@Table(name = "utm_server_module")
12-
public class UtmServerModule implements Serializable {
15+
public class UtmServerModule implements Serializable, AuditableDTO {
1316

1417
private static final long serialVersionUID = 1L;
1518

@@ -100,4 +103,12 @@ public UtmServer getServer() {
100103
public void setServer(UtmServer server) {
101104
this.server = server;
102105
}
106+
107+
@Override
108+
public Map<String, Object> toAuditMap() {
109+
return Map.of(
110+
"moduleName", moduleName != null ? moduleName : "",
111+
"prettyName", prettyName != null ? prettyName : ""
112+
);
113+
}
103114
}

backend/src/main/java/com/park/utmstack/domain/application_events/enums/ApplicationEventType.java

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,5 +50,53 @@ public enum ApplicationEventType {
5050
COLLECTOR_DELETE_SUCCESS,
5151
RESET_USER_PASSWORD_ATTEMPT,
5252
RESET_USER_PASSWORD_SUCCESS,
53+
USER_CREATION_ATTEMPT,
54+
USER_CREATION_SUCCESS,
55+
USER_UPDATE_ATTEMPT,
56+
USER_UPDATE_SUCCESS,
57+
USER_DELETE_ATTEMPT,
58+
USER_DELETE_SUCCESS,
59+
PASSWORD_CHANGE_ATTEMPT,
60+
PASSWORD_CHANGE_SUCCESS,
61+
IDP_CONFIG_CREATE_ATTEMPT,
62+
IDP_CONFIG_CREATE_SUCCESS,
63+
IDP_CONFIG_UPDATE_ATTEMPT,
64+
IDP_CONFIG_UPDATE_SUCCESS,
65+
IDP_CONFIG_DELETE_ATTEMPT,
66+
IDP_CONFIG_DELETE_SUCCESS,
67+
TFA_ENABLE_ATTEMPT,
68+
TFA_ENABLE_SUCCESS,
69+
TFA_DISABLE_ATTEMPT,
70+
TFA_DISABLE_SUCCESS,
71+
API_KEY_CREATE_ATTEMPT,
72+
API_KEY_CREATE_SUCCESS,
73+
API_KEY_DELETE_ATTEMPT,
74+
API_KEY_DELETE_SUCCESS,
75+
CORRELATION_RULE_CREATE_ATTEMPT,
76+
CORRELATION_RULE_CREATE_SUCCESS,
77+
CORRELATION_RULE_UPDATE_ATTEMPT,
78+
CORRELATION_RULE_UPDATE_SUCCESS,
79+
CORRELATION_RULE_DELETE_ATTEMPT,
80+
CORRELATION_RULE_DELETE_SUCCESS,
81+
LOGSTASH_FILTER_CREATE_ATTEMPT,
82+
LOGSTASH_FILTER_CREATE_SUCCESS,
83+
LOGSTASH_FILTER_UPDATE_ATTEMPT,
84+
LOGSTASH_FILTER_UPDATE_SUCCESS,
85+
LOGSTASH_FILTER_DELETE_ATTEMPT,
86+
LOGSTASH_FILTER_DELETE_SUCCESS,
87+
SERVER_MODULE_CREATE_ATTEMPT,
88+
SERVER_MODULE_CREATE_SUCCESS,
89+
SERVER_MODULE_UPDATE_ATTEMPT,
90+
SERVER_MODULE_UPDATE_SUCCESS,
91+
SERVER_MODULE_DELETE_ATTEMPT,
92+
SERVER_MODULE_DELETE_SUCCESS,
93+
COMPLIANCE_SCHEDULE_CREATE_ATTEMPT,
94+
COMPLIANCE_SCHEDULE_CREATE_SUCCESS,
95+
COMPLIANCE_SCHEDULE_DELETE_ATTEMPT,
96+
COMPLIANCE_SCHEDULE_DELETE_SUCCESS,
97+
COMPLIANCE_STANDARD_CREATE_ATTEMPT,
98+
COMPLIANCE_STANDARD_CREATE_SUCCESS,
99+
REPORT_IMPORT_ATTEMPT,
100+
REPORT_IMPORT_SUCCESS,
53101
UNDEFINED
54102
}

backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportConfig.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.park.utmstack.domain.compliance.enums.ComplianceType;
1212
import com.park.utmstack.domain.compliance.types.RequestParamFilter;
1313
import com.park.utmstack.domain.shared_types.DataColumn;
14+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
1415
import com.park.utmstack.util.UtilSerializer;
1516
import com.park.utmstack.util.exceptions.UtmSerializationException;
1617
import org.hibernate.annotations.GenericGenerator;
@@ -20,13 +21,14 @@
2021
import javax.persistence.*;
2122
import java.io.Serializable;
2223
import java.util.List;
24+
import java.util.Map;
2325

2426
/**
2527
* A ComplianceTemplate.
2628
*/
2729
@Entity
2830
@Table(name = "utm_compliance_report_config")
29-
public class UtmComplianceReportConfig implements Serializable {
31+
public class UtmComplianceReportConfig implements Serializable, AuditableDTO {
3032

3133
private static final long serialVersionUID = 1L;
3234

@@ -351,4 +353,12 @@ public ComplianceStatus getConfigReportStatus() {
351353
public void setConfigReportStatus(ComplianceStatus complianceStatus) {
352354
this.configReportStatus = complianceStatus;
353355
}
356+
357+
@Override
358+
public Map<String, Object> toAuditMap() {
359+
return Map.of(
360+
"configReportName", configReportName != null ? configReportName : "",
361+
"configSolution", configSolution != null ? configSolution : ""
362+
);
363+
}
354364
}

backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceReportSchedule.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,12 @@
77
import com.park.utmstack.util.UtilSerializer;
88
import com.park.utmstack.util.exceptions.UtmSerializationException;
99

10+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
11+
1012
import java.io.Serializable;
1113
import java.time.Instant;
1214
import java.util.List;
15+
import java.util.Map;
1316
import javax.persistence.*;
1417
import javax.validation.constraints.Size;
1518

@@ -18,7 +21,7 @@
1821
*/
1922
@Entity
2023
@Table(name = "utm_compliance_report_schedule")
21-
public class UtmComplianceReportSchedule implements Serializable {
24+
public class UtmComplianceReportSchedule implements Serializable, AuditableDTO {
2225

2326
private static final long serialVersionUID = 1L;
2427

@@ -124,6 +127,14 @@ public void setUrlWithParams(String urlWithParams) {
124127
this.urlWithParams = urlWithParams;
125128
}
126129

130+
@Override
131+
public Map<String, Object> toAuditMap() {
132+
return Map.of(
133+
"complianceId", complianceId != null ? complianceId : "",
134+
"scheduleString", scheduleString != null ? scheduleString : ""
135+
);
136+
}
137+
127138
@Override
128139
public boolean equals(Object o) {
129140
if (o instanceof UtmComplianceReportSchedule) {

backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceStandard.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
package com.park.utmstack.domain.compliance;
22

3+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
34
import lombok.Getter;
45
import lombok.Setter;
56
import org.hibernate.annotations.GenericGenerator;
67

78
import javax.persistence.*;
89
import java.io.Serializable;
10+
import java.util.Map;
911

1012
@Setter
1113
@Getter
1214
@Entity
1315
@Table(name = "utm_compliance_standard")
14-
public class UtmComplianceStandard implements Serializable {
16+
public class UtmComplianceStandard implements Serializable, AuditableDTO {
1517
private static final long serialVersionUID = 1L;
1618

1719
@Id
@@ -28,4 +30,11 @@ public class UtmComplianceStandard implements Serializable {
2830
@Column(name = "system_owner")
2931
private Boolean systemOwner;
3032

33+
@Override
34+
public Map<String, Object> toAuditMap() {
35+
return Map.of(
36+
"standardName", standardName != null ? standardName : ""
37+
);
38+
}
39+
3140
}

backend/src/main/java/com/park/utmstack/domain/logstash_filter/UtmLogstashFilter.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,22 @@
44
import com.fasterxml.jackson.annotation.JsonIgnore;
55
import com.park.utmstack.domain.application_modules.UtmModule;
66
import com.park.utmstack.domain.correlation.config.UtmDataTypes;
7+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
78
import org.hibernate.annotations.GenericGenerator;
89

910
import javax.persistence.*;
1011
import javax.validation.constraints.NotBlank;
1112
import javax.validation.constraints.NotNull;
1213
import java.io.Serializable;
1314
import java.time.Instant;
15+
import java.util.Map;
1416

1517
/**
1618
* A UtmLogstashFilter.
1719
*/
1820
@Entity
1921
@Table(name = "utm_logstash_filter")
20-
public class UtmLogstashFilter implements Serializable {
22+
public class UtmLogstashFilter implements Serializable, AuditableDTO {
2123

2224
private static final long serialVersionUID = 1L;
2325

@@ -182,4 +184,12 @@ public Instant getUpdatedAt() {
182184
public void setUpdatedAt(Instant updatedAt) {
183185
this.updatedAt = updatedAt;
184186
}
187+
188+
@Override
189+
public Map<String, Object> toAuditMap() {
190+
return Map.of(
191+
"filterName", filterName != null ? filterName : "",
192+
"moduleName", moduleName != null ? moduleName : ""
193+
);
194+
}
185195
}

backend/src/main/java/com/park/utmstack/service/dto/PasswordChangeDTO.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.park.utmstack.service.dto;
22

3+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
4+
import java.util.Map;
5+
36
/**
47
* A DTO representing a password change required data - current and new password.
58
*/
6-
public class PasswordChangeDTO {
9+
public class PasswordChangeDTO implements AuditableDTO {
710
private String currentPassword;
811
private String newPassword;
912

@@ -16,6 +19,11 @@ public PasswordChangeDTO(String currentPassword, String newPassword) {
1619
this.newPassword = newPassword;
1720
}
1821

22+
@Override
23+
public Map<String, Object> toAuditMap() {
24+
return Map.of("action", "password_change");
25+
}
26+
1927
public String getCurrentPassword() {
2028

2129
return currentPassword;

backend/src/main/java/com/park/utmstack/service/dto/UserDTO.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,21 @@
44
import com.park.utmstack.domain.Authority;
55
import com.park.utmstack.domain.User;
66

7+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
8+
79
import javax.validation.constraints.Email;
810
import javax.validation.constraints.NotBlank;
911
import javax.validation.constraints.Pattern;
1012
import javax.validation.constraints.Size;
1113
import java.time.Instant;
14+
import java.util.Map;
1215
import java.util.Set;
1316
import java.util.stream.Collectors;
1417

1518
/**
1619
* A DTO representing a user, with his authorities.
1720
*/
18-
public class UserDTO {
21+
public class UserDTO implements AuditableDTO {
1922

2023
private Long id;
2124

@@ -187,6 +190,15 @@ public void setTfaSecret(String tfaSecret) {
187190
this.tfaSecret = tfaSecret;
188191
}
189192

193+
@Override
194+
public Map<String, Object> toAuditMap() {
195+
return Map.of(
196+
"login", login != null ? login : "",
197+
"email", email != null ? email : "",
198+
"authorities", authorities != null ? authorities.toString() : ""
199+
);
200+
}
201+
190202
@Override
191203
public String toString() {
192204
return "UserDTO{" + "login='" + login + '\'' + ", firstName='" + firstName + '\'' + ", lastName='" + lastName + '\'' + ", email='" + email + '\'' + ", imageUrl='" + imageUrl + '\'' + ", activated=" + activated + ", langKey='" + langKey + '\'' + ", createdBy=" + createdBy + ", createdDate=" + createdDate + ", lastModifiedBy='" + lastModifiedBy + '\'' + ", lastModifiedDate=" + lastModifiedDate + ", authorities=" + authorities + "}";

backend/src/main/java/com/park/utmstack/service/dto/correlation/UtmCorrelationRulesDTO.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.park.utmstack.domain.correlation.rules.AfterEvents;
55
import com.park.utmstack.domain.correlation.rules.RuleDefinition;
66
import com.park.utmstack.domain.correlation.rules.SearchRequest;
7+
import com.park.utmstack.service.dto.auditable.AuditableDTO;
78
import lombok.Data;
89
import lombok.Getter;
910
import lombok.Setter;
@@ -12,10 +13,11 @@
1213
import javax.validation.constraints.*;
1314
import java.io.Serializable;
1415
import java.util.List;
16+
import java.util.Map;
1517
import java.util.Set;
1618

1719
@Data
18-
public class UtmCorrelationRulesDTO implements Serializable {
20+
public class UtmCorrelationRulesDTO implements Serializable, AuditableDTO {
1921

2022
private static final long serialVersionUID = 1L;
2123

@@ -64,5 +66,14 @@ public class UtmCorrelationRulesDTO implements Serializable {
6466

6567
private List<String> groupBy;
6668

69+
@Override
70+
public Map<String, Object> toAuditMap() {
71+
return Map.of(
72+
"name", name != null ? name : "",
73+
"category", category != null ? category : "",
74+
"technique", technique != null ? technique : ""
75+
);
76+
}
77+
6778
}
6879

0 commit comments

Comments
 (0)