Skip to content

Commit 0126ee6

Browse files
committed
Replace allowed_site is null with allowed_site is empty and client type DSP
1 parent 4d9e8a9 commit 0126ee6

5 files changed

Lines changed: 40 additions & 14 deletions

File tree

src/main/java/com/uid2/admin/managers/KeysetManager.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ else if(siteId == Const.Data.RefreshKeySiteId && keysetId == Const.Data.RefreshK
6767
else if(siteId == Const.Data.AdvertisingTokenSiteId && keysetId == Const.Data.FallbackPublisherKeysetId) {
6868
name = FallbackPublisherKeysetName;
6969
}
70-
return new AdminKeyset(keysetId, siteId, name, null, Instant.now().getEpochSecond(),
71-
true, true, new HashSet<>());
70+
return new AdminKeyset(keysetId, siteId, name, new HashSet<>(), Instant.now().getEpochSecond(),
71+
true, true, new HashSet<>(Set.of(ClientType.DSP)));
7272
}
7373

7474
public static Keyset adminKeysetToKeyset(AdminKeyset adminKeyset, Map<ClientType, Set<Integer>> siteIdsByType) {
@@ -122,6 +122,14 @@ private Optional<AdminKeyset> getAdminKeysetBySiteId(int siteId) {
122122

123123
public AdminKeyset createAndAddKeyset(Integer siteId, Set<Integer> allowedSites, Set<ClientType> allowedTypes) throws Exception{
124124
if(!enableKeysets) return null;
125+
if (allowedSites == null) {
126+
allowedSites = new HashSet<>();
127+
Set<ClientType> typesWithDsp = (allowedTypes == null)
128+
? new HashSet<>()
129+
: new HashSet<>(allowedTypes);
130+
typesWithDsp.add(ClientType.DSP);
131+
allowedTypes = typesWithDsp;
132+
}
125133
int newKeysetId = getNextKeysetId();
126134
AdminKeyset keyset = new AdminKeyset(newKeysetId, siteId, "", allowedSites,
127135
Instant.now().getEpochSecond(), true, true, allowedTypes);

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@ private void handleSetAllowedSites(RoutingContext rc) {
380380
AdminKeyset newKeyset = setAdminKeyset(rc, allowedSites, allowedTypes, siteId, keysetId, name);
381381
if(newKeyset == null) return;
382382
JsonObject jo = new JsonObject();
383-
jo.put("allowed_sites", allowedSites);
383+
jo.put("allowed_sites", newKeyset.getAllowedSites());
384384
jo.put("allowed_types", newKeyset.getAllowedTypes());
385385
jo.put("hash", newKeyset.hashCode());
386386

@@ -430,7 +430,7 @@ private AdminKeyset setAdminKeyset(RoutingContext rc, JsonArray allowedSites, Js
430430
.boxed()
431431
.collect(Collectors.toSet());
432432
} else {
433-
newlist = null;
433+
newlist = new HashSet<>();
434434
}
435435

436436
Set<ClientType> newAllowedTypes = null;
@@ -447,6 +447,10 @@ private AdminKeyset setAdminKeyset(RoutingContext rc, JsonArray allowedSites, Js
447447
}
448448
}
449449

450+
if (allowedSites == null) {
451+
newAllowedTypes.add(ClientType.DSP);
452+
}
453+
450454
final AdminKeyset newKeyset = new AdminKeyset(keysetId, siteId, name,
451455
newlist, Instant.now().getEpochSecond(), true, true, newAllowedTypes);
452456

src/test/java/com/uid2/admin/managers/KeysetManagerTest.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,20 +149,22 @@ public void testCreateKeysetForClient() throws Exception {
149149
assertTrue(sharerKeyset.equals(returnedKeyset));
150150
assertEquals(sharerKeyset.getAllowedSites(), Set.of());
151151

152-
// Generator makes a null list
152+
// Generator makes an empty allowed_sites list with default allowed_types [DSP]
153153
ClientKey generator = new ClientKey("", "", "", "", "", Instant.now(), Set.of(Role.GENERATOR), 8, false, "key-id-8");
154154
returnedKeyset = keysetManager.createKeysetForClient(generator);
155155
AdminKeyset generatorKeyset = keysets.get(returnedKeyset.getKeysetId());
156156
assertTrue(generatorKeyset.equals(returnedKeyset));
157-
assertNull(generatorKeyset.getAllowedSites());
157+
assertEquals(Set.of(), generatorKeyset.getAllowedSites());
158+
assertEquals(Set.of(ClientType.DSP), generatorKeyset.getAllowedTypes());
158159

159160
// Generator takes priority of sharer
160161
ClientKey sharerGenerator = new ClientKey("", "", "", "", "", Instant.now(), Set.of(Role.SHARER, Role.GENERATOR), 9, false, "key-id-9");
161162
keysetManager.createKeysetForClient(sharerGenerator);
162163
returnedKeyset = keysetManager.createKeysetForClient(sharerGenerator);
163164
AdminKeyset bothKeyset = keysets.get(returnedKeyset.getKeysetId());
164165
assertTrue(bothKeyset.equals(returnedKeyset));
165-
assertNull(bothKeyset.getAllowedSites());
166+
assertEquals(Set.of(), bothKeyset.getAllowedSites());
167+
assertEquals(Set.of(ClientType.DSP), bothKeyset.getAllowedTypes());
166168

167169
// If keyset already exists none gets added
168170
returnedKeyset = keysetManager.createKeysetForClient(sharer);

src/test/java/com/uid2/admin/vertx/EncryptionKeyServiceTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.uid2.admin.vertx.test.ServiceTestBase;
88
import com.uid2.shared.Const;
99
import com.uid2.shared.auth.Role;
10+
import com.uid2.shared.model.ClientType;
1011
import com.uid2.shared.model.EncryptionKey;
1112
import com.uid2.shared.model.KeysetKey;
1213
import io.vertx.core.Vertx;
@@ -150,7 +151,7 @@ void addSiteKeyAddsKeysetAndKey() throws Exception {
150151
setKeysetKeys(123);
151152
final EncryptionKey key = keyService.addSiteKey(5);
152153

153-
AdminKeyset expected = new AdminKeyset(4, 5, "", null, Instant.now().getEpochSecond(), true, true, new HashSet<>());
154+
AdminKeyset expected = new AdminKeyset(4, 5, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP));
154155
assertNotNull(keysets.get(4));
155156
assertEquals(expected, keysets.get(4));
156157
verify(keysetKeyStoreWriter).upload(collectionOfSize(1), eq(124));

src/test/java/com/uid2/admin/vertx/SharingServiceTest.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,8 +1131,13 @@ void KeysetSetNewNullAllowedSites(Vertx vertx, VertxTestContext testContext) {
11311131
post(vertx, testContext, "api/sharing/keyset", body, response -> {
11321132
assertEquals(200, response.statusCode());
11331133

1134-
AdminKeyset expected = new AdminKeyset(2, 1, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>());
1135-
assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1134+
// Next keyset id is max(existing ids, 3) + 1 => 4 when only keyset 1 exists
1135+
int newKeysetId = 4;
1136+
AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP));
1137+
compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1138+
compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types"));
1139+
assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites());
1140+
assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes());
11361141

11371142
testContext.completeNow();
11381143
});
@@ -1158,8 +1163,12 @@ void KeysetSetNewExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext testCo
11581163
post(vertx, testContext, "api/sharing/keyset", body, response -> {
11591164
assertEquals(200, response.statusCode());
11601165

1161-
AdminKeyset expected = new AdminKeyset(2, 1, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>());
1162-
assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1166+
int newKeysetId = 4;
1167+
AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP));
1168+
compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1169+
compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types"));
1170+
assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites());
1171+
assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes());
11631172

11641173
testContext.completeNow();
11651174
});
@@ -1184,8 +1193,9 @@ void KeysetSetUpdateNullAllowedSites(Vertx vertx, VertxTestContext testContext)
11841193
post(vertx, testContext, "api/sharing/keyset", body, response -> {
11851194
assertEquals(200, response.statusCode());
11861195

1187-
AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>());
1196+
AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP));
11881197
assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1198+
compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types"));
11891199

11901200
testContext.completeNow();
11911201
});
@@ -1211,8 +1221,9 @@ void KeysetSetUpdateExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext tes
12111221
post(vertx, testContext, "api/sharing/keyset", body, response -> {
12121222
assertEquals(200, response.statusCode());
12131223

1214-
AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>());
1224+
AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP));
12151225
assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites"));
1226+
compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types"));
12161227

12171228
testContext.completeNow();
12181229
});

0 commit comments

Comments
 (0)