Skip to content

Commit e8b94e8

Browse files
committed
Ensuring opEvent parameter in AuditEvent queries
1 parent 5a6a25b commit e8b94e8

2 files changed

Lines changed: 15 additions & 14 deletions

File tree

‎core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAuditEventDAO.java‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,14 @@ public AuditEventCriteriaBuilder opEvent(
9797
final String category,
9898
final String subcategory,
9999
final String op,
100-
final OpEvent.Outcome outcome) {
100+
final OpEvent.Outcome outcome,
101+
final List<Object> parameters) {
101102

102103
query.append(andIfNeeded()).
103-
append("opEvent LIKE '").
104-
append(toOpEvent(type, category, subcategory, op, outcome).replace("[]", "[%]")).
105-
append("'");
104+
append("opEvent LIKE ?").append(setParameter(
105+
parameters,
106+
toOpEvent(type, category, subcategory, op, outcome).replace("[]", "[%]"))).
107+
append(" ESCAPE '#'");
106108

107109
return this;
108110
}
@@ -174,7 +176,7 @@ public long count(
174176
+ " WHERE" + criteriaBuilder(entityKey).
175177
username(username, parameters).
176178
who(who, parameters).
177-
opEvent(type, category, subcategory, op, outcome).
179+
opEvent(type, category, subcategory, op, outcome, parameters).
178180
before(before, parameters).
179181
after(after, parameters).
180182
build();
@@ -205,7 +207,7 @@ public List<AuditEventTO> search(
205207
+ " WHERE" + criteriaBuilder(entityKey).
206208
username(username, parameters).
207209
who(who, parameters).
208-
opEvent(type, category, subcategory, op, outcome).
210+
opEvent(type, category, subcategory, op, outcome, parameters).
209211
before(before, parameters).
210212
after(after, parameters).
211213
build();

‎core/persistence-neo4j/src/main/java/org/apache/syncope/core/persistence/neo4j/dao/Neo4jAuditEventDAO.java‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,12 @@ public AuditEventCriteriaBuilder opEvent(
8787
final String category,
8888
final String subcategory,
8989
final String op,
90-
final OpEvent.Outcome outcome) {
90+
final OpEvent.Outcome outcome,
91+
final Map<String, Object> parameters) {
9192

92-
query.append(andIfNeeded()).
93-
append("n.opEvent =~ '").
94-
append(toOpEvent(type, category, subcategory, op, outcome).
95-
replace("[", "\\[").replace("]", "\\]").replace("\\[\\]", "\\[.*\\]")).
96-
append("'");
93+
parameters.put("opEvent", toOpEvent(type, category, subcategory, op, outcome).
94+
replace("[", "\\[").replace("]", "\\]").replace("\\[\\]", "\\[.*\\]"));
95+
query.append(andIfNeeded()).append("n.opEvent =~ $opEvent");
9796

9897
return this;
9998
}
@@ -164,7 +163,7 @@ public long count(
164163
+ " WHERE " + criteriaBuilder(entityKey).
165164
username(username, parameters).
166165
who(who, parameters).
167-
opEvent(type, category, subcategory, op, outcome).
166+
opEvent(type, category, subcategory, op, outcome, parameters).
168167
before(before, parameters).
169168
after(after, parameters).
170169
build()
@@ -193,7 +192,7 @@ public List<AuditEventTO> search(
193192
+ "WHERE " + criteriaBuilder(entityKey).
194193
username(username, parameters).
195194
who(who, parameters).
196-
opEvent(type, category, subcategory, op, outcome).
195+
opEvent(type, category, subcategory, op, outcome, parameters).
197196
before(before, parameters).
198197
after(after, parameters).
199198
build()

0 commit comments

Comments
 (0)