Skip to content

Commit a922344

Browse files
authored
UID2-5511 handle query param and body (#501)
* Audit log for client key service * Audit log for client side keypair service * Audit log for enclave id service * Audit log for encryption key service * Audit log for operator key service * Update shared to 10.0.0 * Log bodyf or partner config service * Audit log for salt service * Audit log for service link service * Audit log for service service * Audit log for sharing service * Audit log for site service * Audit log for cloud encryption key service
1 parent e5c39f4 commit a922344

13 files changed

+61
-47
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<!-- check micrometer.version vertx-micrometer-metrics consumes before bumping up -->
1717
<micrometer.version>1.12.2</micrometer.version>
1818
<junit-jupiter.version>5.11.2</junit-jupiter.version>
19-
<uid2-shared.version>9.4.11</uid2-shared.version>
19+
<uid2-shared.version>10.0.0</uid2-shared.version>
2020
<okta-jwt.version>0.5.10</okta-jwt.version>
2121
<image.version>${project.version}</image.version>
2222
</properties>

src/main/java/com/uid2/admin/vertx/service/ClientKeyService.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.uid2.admin.vertx.RequestUtil;
1212
import com.uid2.admin.vertx.ResponseUtil;
1313
import com.uid2.admin.vertx.WriteLock;
14+
import com.uid2.shared.audit.AuditParams;
1415
import com.uid2.shared.auth.Role;
1516
import com.uid2.shared.model.Site;
1617
import com.uid2.shared.secret.IKeyGenerator;
@@ -26,10 +27,7 @@
2627
import org.slf4j.LoggerFactory;
2728

2829
import java.time.Instant;
29-
import java.util.Collection;
30-
import java.util.List;
31-
import java.util.Optional;
32-
import java.util.Set;
30+
import java.util.*;
3331
import java.util.stream.Collectors;
3432

3533
import static com.uid2.admin.vertx.Endpoints.*;
@@ -97,37 +95,37 @@ public void setupRoutes(Router router) {
9795
synchronized (writeLock) {
9896
this.handleClientAdd(ctx);
9997
}
100-
}, Role.MAINTAINER, Role.SHARING_PORTAL));
98+
}, new AuditParams(List.of("name", "roles", "site_id"), Collections.emptyList()), Role.MAINTAINER, Role.SHARING_PORTAL));
10199

102100
router.post(API_CLIENT_DEL.toString()).blockingHandler(auth.handle((ctx) -> {
103101
synchronized (writeLock) {
104102
this.handleClientDel(ctx);
105103
}
106-
}, Role.SUPER_USER));
104+
}, new AuditParams(List.of("contact"), Collections.emptyList()), Role.SUPER_USER));
107105

108106
router.post(API_CLIENT_UPDATE.toString()).blockingHandler(auth.handle((ctx) -> {
109107
synchronized (writeLock) {
110108
this.handleClientUpdate(ctx);
111109
}
112-
}, Role.MAINTAINER));
110+
}, new AuditParams(List.of("contact"), Collections.emptyList()), Role.MAINTAINER));
113111

114112
router.post(API_CLIENT_DISABLE.toString()).blockingHandler(auth.handle((ctx) -> {
115113
synchronized (writeLock) {
116114
this.handleClientDisable(ctx);
117115
}
118-
}, Role.MAINTAINER, Role.SHARING_PORTAL));
116+
}, new AuditParams(List.of("contact"), Collections.emptyList()), Role.MAINTAINER, Role.SHARING_PORTAL));
119117

120118
router.post(API_CLIENT_ENABLE.toString()).blockingHandler(auth.handle((ctx) -> {
121119
synchronized (writeLock) {
122120
this.handleClientEnable(ctx);
123121
}
124-
}, Role.MAINTAINER));
122+
}, new AuditParams(List.of("contact"), Collections.emptyList()), Role.MAINTAINER));
125123

126124
router.post(API_CLIENT_ROLES.toString()).blockingHandler(auth.handle((ctx) -> {
127125
synchronized (writeLock) {
128126
this.handleClientRoles(ctx);
129127
}
130-
}, Role.PRIVILEGED, Role.SHARING_PORTAL));
128+
}, new AuditParams(List.of("contact", "roles"), Collections.emptyList()), Role.PRIVILEGED, Role.SHARING_PORTAL));
131129

132130
router.post(API_CLIENT_CONTACT.toString()).blockingHandler(auth.handle((ctx) -> {
133131
synchronized (writeLock) {
@@ -139,7 +137,7 @@ public void setupRoutes(Router router) {
139137
synchronized (writeLock) {
140138
this.handleClientRename(ctx);
141139
}
142-
}, Role.MAINTAINER, Role.SHARING_PORTAL));
140+
}, new AuditParams(List.of("contact", "newName"), Collections.emptyList()), Role.MAINTAINER, Role.SHARING_PORTAL));
143141
}
144142

145143
private void handleRewriteMetadata(RoutingContext rc) {

src/main/java/com/uid2/admin/vertx/service/ClientSideKeypairService.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.uid2.admin.store.writer.ClientSideKeypairStoreWriter;
99
import com.uid2.admin.vertx.ResponseUtil;
1010
import com.uid2.admin.vertx.WriteLock;
11+
import com.uid2.shared.audit.AuditParams;
1112
import com.uid2.shared.auth.Role;
1213
import com.uid2.shared.model.ClientSideKeypair;
1314
import com.uid2.shared.store.reader.RotatingClientSideKeypairStore;
@@ -69,12 +70,12 @@ public void setupRoutes(Router router) {
6970
synchronized (writeLock) {
7071
this.handleAddKeypair(ctx);
7172
}
72-
}, Role.MAINTAINER, Role.SHARING_PORTAL));
73+
}, new AuditParams(Collections.emptyList(), List.of("site_id", "name", "contact", "disabled")), Role.MAINTAINER, Role.SHARING_PORTAL));
7374
router.post(API_CLIENT_SIDE_KEYPAIRS_UPDATE.toString()).blockingHandler(auth.handle((ctx) -> {
7475
synchronized (writeLock) {
7576
this.handleUpdateKeypair(ctx);
7677
}
77-
}, Role.MAINTAINER, Role.SHARING_PORTAL));
78+
}, new AuditParams(Collections.emptyList(), List.of("subscription_id", "name", "contact", "disabled")), Role.MAINTAINER, Role.SHARING_PORTAL));
7879
router.get(API_CLIENT_SIDE_KEYPAIRS_LIST.toString()).handler(
7980
auth.handle(this::handleListAllKeypairs, Role.MAINTAINER, Role.METRICS_EXPORT));
8081
router.get(API_CLIENT_SIDE_KEYPAIRS_SUBSCRIPTIONID.toString()).handler(

src/main/java/com/uid2/admin/vertx/service/CloudEncryptionKeyService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,16 @@
88
import com.uid2.admin.job.JobDispatcher;
99
import com.uid2.admin.model.CloudEncryptionKeyListResponse;
1010
import com.uid2.admin.vertx.Endpoints;
11+
import com.uid2.shared.audit.AuditParams;
1112
import com.uid2.shared.auth.Role;
1213
import com.uid2.shared.util.Mapper;
1314
import io.vertx.core.http.HttpHeaders;
1415
import io.vertx.ext.web.Router;
1516
import io.vertx.ext.web.RoutingContext;
1617

18+
import java.util.Collections;
19+
import java.util.List;
20+
1721
public class CloudEncryptionKeyService implements IService {
1822
private final AdminAuthMiddleware auth;
1923
private final CloudEncryptionKeyManager keyManager;
@@ -39,7 +43,7 @@ public void setupRoutes(Router router) {
3943
);
4044

4145
router.post(Endpoints.CLOUD_ENCRYPTION_KEY_ROTATE.toString()).handler(
42-
auth.handle(this::handleRotate, Role.MAINTAINER, Role.SECRET_ROTATION)
46+
auth.handle(this::handleRotate, new AuditParams(List.of("fail"), Collections.emptyList()), Role.MAINTAINER, Role.SECRET_ROTATION)
4347
);
4448
}
4549

src/main/java/com/uid2/admin/vertx/service/EnclaveIdService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.uid2.admin.vertx.RequestUtil;
99
import com.uid2.admin.vertx.ResponseUtil;
1010
import com.uid2.admin.vertx.WriteLock;
11+
import com.uid2.shared.audit.AuditParams;
1112
import com.uid2.shared.auth.EnclaveIdentifierProvider;
1213
import com.uid2.shared.auth.Role;
1314
import com.uid2.shared.model.EnclaveIdentifier;
@@ -18,6 +19,7 @@
1819
import io.vertx.ext.web.RoutingContext;
1920

2021
import java.util.Collection;
22+
import java.util.Collections;
2123
import java.util.List;
2224
import java.util.Optional;
2325
import java.util.stream.Collectors;
@@ -55,12 +57,12 @@ public void setupRoutes(Router router) {
5557
synchronized (writeLock) {
5658
this.handleEnclaveAdd(ctx);
5759
}
58-
}, Role.PRIVILEGED));
60+
}, new AuditParams(List.of("name", "protocol", "enclave_id"), Collections.emptyList()), Role.PRIVILEGED));
5961
router.post(API_ENCLAVE_DEL.toString()).blockingHandler(auth.handle((ctx) -> {
6062
synchronized (writeLock) {
6163
this.handleEnclaveDel(ctx);
6264
}
63-
}, Role.SUPER_USER));
65+
}, new AuditParams(List.of("name"), Collections.emptyList()), Role.SUPER_USER));
6466
}
6567

6668
private void handleEnclaveMetadata(RoutingContext rc) {

src/main/java/com/uid2/admin/vertx/service/EncryptionKeyService.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.uid2.admin.vertx.ResponseUtil;
1515
import com.uid2.admin.vertx.WriteLock;
1616
import com.uid2.shared.Const;
17+
import com.uid2.shared.audit.AuditParams;
1718
import com.uid2.shared.auth.Role;
1819
import com.uid2.shared.model.EncryptionKey;
1920
import com.uid2.shared.model.KeysetKey;
@@ -147,20 +148,20 @@ public void setupRoutes(Router router) {
147148
synchronized (writeLock) {
148149
this.handleAddSiteKey(ctx);
149150
}
150-
}, Role.MAINTAINER));
151+
}, new AuditParams(List.of("site_id", "activates_in_seconds"), Collections.emptyList()), Role.MAINTAINER));
151152

152153
router.post(API_KEY_ROTATE_SITE.toString()).blockingHandler(auth.handle((ctx) -> {
153154
synchronized (writeLock) {
154155
this.handleRotateSiteKey(ctx);
155156
}
156-
}, Role.MAINTAINER));
157+
}, new AuditParams(List.of("site_id"), Collections.emptyList()), Role.MAINTAINER));
157158

158159
if(enableKeysets) {
159160
router.post(API_KEY_ROTATE_KEYSET_KEY.toString()).blockingHandler(auth.handle((ctx) -> {
160161
synchronized (writeLock) {
161162
this.handleRotateKeysetKey(ctx);
162163
}
163-
}, Role.MAINTAINER));
164+
}, new AuditParams(List.of("keyset_id"), Collections.emptyList()), Role.MAINTAINER));
164165
}
165166

166167
router.post(API_KEY_ROTATE_ALL_SITES.toString()).blockingHandler(auth.handle((ctx) -> {

src/main/java/com/uid2/admin/vertx/service/OperatorKeyService.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.uid2.admin.auth.AdminAuthMiddleware;
55
import com.uid2.admin.auth.RevealedKey;
66
import com.uid2.admin.cloudencryption.CloudEncryptionKeyManager;
7+
import com.uid2.shared.audit.AuditParams;
78
import com.uid2.shared.model.Site;
89
import com.uid2.shared.secret.IKeyGenerator;
910
import com.uid2.admin.store.writer.OperatorKeyStoreWriter;
@@ -78,43 +79,43 @@ public void setupRoutes(Router router) {
7879
router.get(API_OPERATOR_LIST.toString()).handler(
7980
auth.handle(this::handleOperatorList, Role.MAINTAINER, Role.METRICS_EXPORT));
8081
router.get(API_OPERATOR_REVEAL.toString()).handler(
81-
auth.handle(this::handleOperatorReveal, Role.MAINTAINER));
82+
auth.handle(this::handleOperatorReveal, new AuditParams(List.of("name"), Collections.emptyList()), Role.MAINTAINER));
8283

8384
router.post(API_OPERATOR_ADD.toString()).blockingHandler(auth.handle((ctx) -> {
8485
synchronized (writeLock) {
8586
this.handleOperatorAdd(ctx);
8687
}
87-
}, Role.MAINTAINER));
88+
}, new AuditParams(List.of("name", "protocol", "site_id", "operator_type", "roles"), Collections.emptyList()), Role.MAINTAINER));
8889

8990
router.post(API_OPERATOR_DEL.toString()).blockingHandler(auth.handle((ctx) -> {
9091
synchronized (writeLock) {
9192
this.handleOperatorDel(ctx);
9293
}
93-
}, Role.SUPER_USER));
94+
}, new AuditParams(List.of("name"), Collections.emptyList()), Role.SUPER_USER));
9495

9596
router.post(API_OPERATOR_DISABLE.toString()).blockingHandler(auth.handle((ctx) -> {
9697
synchronized (writeLock) {
9798
this.handleOperatorDisable(ctx);
9899
}
99-
}, Role.PRIVILEGED));
100+
}, new AuditParams(List.of("name"), Collections.emptyList()), Role.PRIVILEGED));
100101

101102
router.post(API_OPERATOR_ENABLE.toString()).blockingHandler(auth.handle((ctx) -> {
102103
synchronized (writeLock) {
103104
this.handleOperatorEnable(ctx);
104105
}
105-
}, Role.MAINTAINER));
106+
}, new AuditParams(List.of("name"), Collections.emptyList()), Role.MAINTAINER));
106107

107108
router.post(API_OPERATOR_UPDATE.toString()).blockingHandler(auth.handle((ctx) -> {
108109
synchronized (writeLock) {
109110
this.handleOperatorUpdate(ctx);
110111
}
111-
}, Role.PRIVILEGED));
112+
}, new AuditParams(List.of("name", "site_id", "operator_type"), Collections.emptyList()), Role.PRIVILEGED));
112113

113114
router.post(API_OPERATOR_ROLES.toString()).blockingHandler(auth.handle((ctx) -> {
114115
synchronized (writeLock) {
115116
this.handleOperatorRoles(ctx);
116117
}
117-
}, Role.PRIVILEGED));
118+
}, new AuditParams(List.of("name", "roles"), Collections.emptyList()), Role.PRIVILEGED));
118119
}
119120

120121
private void handleOperatorMetadata(RoutingContext rc) {

src/main/java/com/uid2/admin/vertx/service/PartnerConfigService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,16 @@
55
import com.uid2.admin.store.writer.PartnerStoreWriter;
66
import com.uid2.admin.vertx.ResponseUtil;
77
import com.uid2.admin.vertx.WriteLock;
8+
import com.uid2.shared.audit.AuditParams;
89
import com.uid2.shared.auth.Role;
910
import io.vertx.core.http.HttpHeaders;
1011
import io.vertx.core.json.JsonArray;
1112
import io.vertx.ext.web.Router;
1213
import io.vertx.ext.web.RoutingContext;
1314

15+
import java.util.Collections;
16+
import java.util.List;
17+
1418
import static com.uid2.admin.vertx.Endpoints.API_PARTNER_CONFIG_GET;
1519
import static com.uid2.admin.vertx.Endpoints.API_PARTNER_CONFIG_UPDATE;
1620

@@ -38,7 +42,7 @@ public void setupRoutes(Router router) {
3842
synchronized (writeLock) {
3943
this.handlePartnerConfigUpdate(ctx);
4044
}
41-
}, Role.PRIVILEGED));
45+
}, new AuditParams(Collections.emptyList(), List.of("partner_id", "config")), Role.PRIVILEGED));
4246
}
4347

4448
private void handlePartnerConfigGet(RoutingContext rc) {

src/main/java/com/uid2/admin/vertx/service/SaltService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.uid2.admin.vertx.RequestUtil;
88
import com.uid2.admin.vertx.ResponseUtil;
99
import com.uid2.admin.vertx.WriteLock;
10+
import com.uid2.shared.audit.AuditParams;
1011
import com.uid2.shared.auth.Role;
1112
import com.uid2.shared.model.SaltEntry;
1213
import com.uid2.shared.store.salt.RotatingSaltProvider;
@@ -21,6 +22,7 @@
2122
import java.time.*;
2223
import java.time.format.DateTimeFormatter;
2324
import java.util.Arrays;
25+
import java.util.Collections;
2426
import java.util.List;
2527
import java.util.Optional;
2628

@@ -57,7 +59,7 @@ public void setupRoutes(Router router) {
5759
synchronized (writeLock) {
5860
this.handleSaltRotate(ctx);
5961
}
60-
}, Role.SUPER_USER, Role.SECRET_ROTATION));
62+
}, new AuditParams(List.of("fraction", "min_ages_in_seconds", "target_date"), Collections.emptyList()), Role.SUPER_USER, Role.SECRET_ROTATION));
6163
}
6264

6365
private void handleSaltSnapshots(RoutingContext rc) {

src/main/java/com/uid2/admin/vertx/service/ServiceLinkService.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.uid2.admin.store.writer.StoreWriter;
55
import com.uid2.admin.vertx.ResponseUtil;
66
import com.uid2.admin.vertx.WriteLock;
7+
import com.uid2.shared.audit.AuditParams;
78
import com.uid2.shared.auth.Role;
89
import com.uid2.shared.model.ServiceLink;
910
import com.uid2.shared.store.reader.RotatingServiceLinkStore;
@@ -17,10 +18,7 @@
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
1920

20-
import java.util.Collection;
21-
import java.util.Comparator;
22-
import java.util.List;
23-
import java.util.Set;
21+
import java.util.*;
2422
import java.util.stream.Collectors;
2523

2624
import static com.uid2.admin.vertx.Endpoints.*;
@@ -56,17 +54,17 @@ public void setupRoutes(Router router) {
5654
synchronized (writeLock) {
5755
this.handleServiceLinkAdd(ctx);
5856
}
59-
}, Role.MAINTAINER));
57+
}, new AuditParams(Collections.emptyList(), List.of("link_id", "service_id", "site_id", "name", "roles")), Role.MAINTAINER));
6058
router.post(API_SERVICE_LINK_UPDATE.toString()).blockingHandler(auth.handle((ctx) -> {
6159
synchronized (writeLock) {
6260
this.handleServiceLinkUpdate(ctx);
6361
}
64-
}, Role.MAINTAINER));
62+
}, new AuditParams(Collections.emptyList(), List.of("link_id", "service_id", "site_id", "name", "roles")), Role.MAINTAINER));
6563
router.post(API_SERVICE_LINK_DELETE.toString()).blockingHandler(auth.handle((ctx) -> {
6664
synchronized (writeLock) {
6765
this.handleServiceLinkDelete(ctx);
6866
}
69-
}, Role.PRIVILEGED));
67+
}, new AuditParams(Collections.emptyList(), List.of("link_id", "service_id")), Role.PRIVILEGED));
7068
}
7169

7270
private void handleServiceLinkList(RoutingContext rc) {

0 commit comments

Comments
 (0)