From 0126ee650a54bacc6b2b22a4922106b6b3391c95 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Tue, 24 Mar 2026 14:27:49 -0700 Subject: [PATCH 01/13] Replace allowed_site is null with allowed_site is empty and client type DSP --- .../uid2/admin/managers/KeysetManager.java | 12 ++++++++-- .../admin/vertx/service/SharingService.java | 8 +++++-- .../admin/managers/KeysetManagerTest.java | 8 ++++--- .../admin/vertx/EncryptionKeyServiceTest.java | 3 ++- .../uid2/admin/vertx/SharingServiceTest.java | 23 ++++++++++++++----- 5 files changed, 40 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/uid2/admin/managers/KeysetManager.java b/src/main/java/com/uid2/admin/managers/KeysetManager.java index 17b035765..e878cb208 100644 --- a/src/main/java/com/uid2/admin/managers/KeysetManager.java +++ b/src/main/java/com/uid2/admin/managers/KeysetManager.java @@ -67,8 +67,8 @@ else if(siteId == Const.Data.RefreshKeySiteId && keysetId == Const.Data.RefreshK else if(siteId == Const.Data.AdvertisingTokenSiteId && keysetId == Const.Data.FallbackPublisherKeysetId) { name = FallbackPublisherKeysetName; } - return new AdminKeyset(keysetId, siteId, name, null, Instant.now().getEpochSecond(), - true, true, new HashSet<>()); + return new AdminKeyset(keysetId, siteId, name, new HashSet<>(), Instant.now().getEpochSecond(), + true, true, new HashSet<>(Set.of(ClientType.DSP))); } public static Keyset adminKeysetToKeyset(AdminKeyset adminKeyset, Map> siteIdsByType) { @@ -122,6 +122,14 @@ private Optional getAdminKeysetBySiteId(int siteId) { public AdminKeyset createAndAddKeyset(Integer siteId, Set allowedSites, Set allowedTypes) throws Exception{ if(!enableKeysets) return null; + if (allowedSites == null) { + allowedSites = new HashSet<>(); + Set typesWithDsp = (allowedTypes == null) + ? new HashSet<>() + : new HashSet<>(allowedTypes); + typesWithDsp.add(ClientType.DSP); + allowedTypes = typesWithDsp; + } int newKeysetId = getNextKeysetId(); AdminKeyset keyset = new AdminKeyset(newKeysetId, siteId, "", allowedSites, Instant.now().getEpochSecond(), true, true, allowedTypes); diff --git a/src/main/java/com/uid2/admin/vertx/service/SharingService.java b/src/main/java/com/uid2/admin/vertx/service/SharingService.java index e202c4598..e571079d1 100644 --- a/src/main/java/com/uid2/admin/vertx/service/SharingService.java +++ b/src/main/java/com/uid2/admin/vertx/service/SharingService.java @@ -380,7 +380,7 @@ private void handleSetAllowedSites(RoutingContext rc) { AdminKeyset newKeyset = setAdminKeyset(rc, allowedSites, allowedTypes, siteId, keysetId, name); if(newKeyset == null) return; JsonObject jo = new JsonObject(); - jo.put("allowed_sites", allowedSites); + jo.put("allowed_sites", newKeyset.getAllowedSites()); jo.put("allowed_types", newKeyset.getAllowedTypes()); jo.put("hash", newKeyset.hashCode()); @@ -430,7 +430,7 @@ private AdminKeyset setAdminKeyset(RoutingContext rc, JsonArray allowedSites, Js .boxed() .collect(Collectors.toSet()); } else { - newlist = null; + newlist = new HashSet<>(); } Set newAllowedTypes = null; @@ -447,6 +447,10 @@ private AdminKeyset setAdminKeyset(RoutingContext rc, JsonArray allowedSites, Js } } + if (allowedSites == null) { + newAllowedTypes.add(ClientType.DSP); + } + final AdminKeyset newKeyset = new AdminKeyset(keysetId, siteId, name, newlist, Instant.now().getEpochSecond(), true, true, newAllowedTypes); diff --git a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java index 5b52a9823..68efbf884 100644 --- a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java +++ b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java @@ -149,12 +149,13 @@ public void testCreateKeysetForClient() throws Exception { assertTrue(sharerKeyset.equals(returnedKeyset)); assertEquals(sharerKeyset.getAllowedSites(), Set.of()); - // Generator makes a null list + // Generator makes an empty allowed_sites list with default allowed_types [DSP] ClientKey generator = new ClientKey("", "", "", "", "", Instant.now(), Set.of(Role.GENERATOR), 8, false, "key-id-8"); returnedKeyset = keysetManager.createKeysetForClient(generator); AdminKeyset generatorKeyset = keysets.get(returnedKeyset.getKeysetId()); assertTrue(generatorKeyset.equals(returnedKeyset)); - assertNull(generatorKeyset.getAllowedSites()); + assertEquals(Set.of(), generatorKeyset.getAllowedSites()); + assertEquals(Set.of(ClientType.DSP), generatorKeyset.getAllowedTypes()); // Generator takes priority of sharer ClientKey sharerGenerator = new ClientKey("", "", "", "", "", Instant.now(), Set.of(Role.SHARER, Role.GENERATOR), 9, false, "key-id-9"); @@ -162,7 +163,8 @@ public void testCreateKeysetForClient() throws Exception { returnedKeyset = keysetManager.createKeysetForClient(sharerGenerator); AdminKeyset bothKeyset = keysets.get(returnedKeyset.getKeysetId()); assertTrue(bothKeyset.equals(returnedKeyset)); - assertNull(bothKeyset.getAllowedSites()); + assertEquals(Set.of(), bothKeyset.getAllowedSites()); + assertEquals(Set.of(ClientType.DSP), bothKeyset.getAllowedTypes()); // If keyset already exists none gets added returnedKeyset = keysetManager.createKeysetForClient(sharer); diff --git a/src/test/java/com/uid2/admin/vertx/EncryptionKeyServiceTest.java b/src/test/java/com/uid2/admin/vertx/EncryptionKeyServiceTest.java index 6a839cdb0..f16b6cffa 100644 --- a/src/test/java/com/uid2/admin/vertx/EncryptionKeyServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/EncryptionKeyServiceTest.java @@ -7,6 +7,7 @@ import com.uid2.admin.vertx.test.ServiceTestBase; import com.uid2.shared.Const; import com.uid2.shared.auth.Role; +import com.uid2.shared.model.ClientType; import com.uid2.shared.model.EncryptionKey; import com.uid2.shared.model.KeysetKey; import io.vertx.core.Vertx; @@ -150,7 +151,7 @@ void addSiteKeyAddsKeysetAndKey() throws Exception { setKeysetKeys(123); final EncryptionKey key = keyService.addSiteKey(5); - AdminKeyset expected = new AdminKeyset(4, 5, "", null, Instant.now().getEpochSecond(), true, true, new HashSet<>()); + AdminKeyset expected = new AdminKeyset(4, 5, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); assertNotNull(keysets.get(4)); assertEquals(expected, keysets.get(4)); verify(keysetKeyStoreWriter).upload(collectionOfSize(1), eq(124)); diff --git a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java index ee6758d7c..fac9f6926 100644 --- a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java @@ -1131,8 +1131,13 @@ void KeysetSetNewNullAllowedSites(Vertx vertx, VertxTestContext testContext) { post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(2, 1, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>()); - assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + // Next keyset id is max(existing ids, 3) + 1 => 4 when only keyset 1 exists + int newKeysetId = 4; + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes()); testContext.completeNow(); }); @@ -1158,8 +1163,12 @@ void KeysetSetNewExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext testCo post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(2, 1, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>()); - assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + int newKeysetId = 4; + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes()); testContext.completeNow(); }); @@ -1184,8 +1193,9 @@ void KeysetSetUpdateNullAllowedSites(Vertx vertx, VertxTestContext testContext) post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>()); + AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); testContext.completeNow(); }); @@ -1211,8 +1221,9 @@ void KeysetSetUpdateExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext tes post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, new HashSet<>()); + AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); testContext.completeNow(); }); From af7dbc7384cb09d8ff50edbf3fc3354a2053af07 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Tue, 24 Mar 2026 16:04:56 -0700 Subject: [PATCH 02/13] Fix unit tests --- .../com/uid2/admin/vertx/SharingServiceTest.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java index fac9f6926..13d30bfb2 100644 --- a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java @@ -26,8 +26,7 @@ import java.util.stream.Stream; import static com.uid2.admin.vertx.Endpoints.API_SHARING_KEYSETS_RELATED; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; public class SharingServiceTest extends ServiceTestBase { @@ -1193,9 +1192,10 @@ void KeysetSetUpdateNullAllowedSites(Vertx vertx, VertxTestContext testContext) post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); - assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); testContext.completeNow(); }); @@ -1221,9 +1221,10 @@ void KeysetSetUpdateExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext tes post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", null, Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); - assertEquals(null, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); testContext.completeNow(); }); From 48d391df1e80fbe42e2e66d08a861fb548817439 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Tue, 24 Mar 2026 18:04:36 -0700 Subject: [PATCH 03/13] Add more unit tests --- .../admin/managers/KeysetManagerTest.java | 48 +++++++++++++++++++ .../uid2/admin/vertx/SharingServiceTest.java | 35 +++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java index 68efbf884..ec3449976 100644 --- a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java +++ b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java @@ -174,6 +174,54 @@ public void testCreateKeysetForClient() throws Exception { assertEquals(7, keysets.keySet().size()); } + @Test + public void createAndAddKeyset_nullAllowedSites_storesEmptySetNotNullAndAddsDspWhenTypesNull() throws Exception { + setKeysets(new HashMap<>()); + KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); + + AdminKeyset created = keysetManager.createAndAddKeyset(42, null, null); + + assertNotNull(created.getAllowedSites()); + assertTrue(created.getAllowedSites().isEmpty()); + assertEquals(Set.of(ClientType.DSP), created.getAllowedTypes()); + } + + @Test + public void createAndAddKeyset_nullAllowedSites_preservesOtherTypesAndAddsDsp() throws Exception { + setKeysets(new HashMap<>()); + KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); + + AdminKeyset created = keysetManager.createAndAddKeyset(42, null, new HashSet<>(Set.of(ClientType.ADVERTISER))); + + assertNotNull(created.getAllowedSites()); + assertTrue(created.getAllowedSites().isEmpty()); + assertTrue(created.getAllowedTypes().contains(ClientType.DSP)); + assertTrue(created.getAllowedTypes().contains(ClientType.ADVERTISER)); + } + + @Test + public void createKeysetForSite_newKeyset_hasNonNullEmptyAllowedSitesAndDspType() throws Exception { + setKeysets(new HashMap<>()); + KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); + + AdminKeyset created = keysetManager.createKeysetForSite(99); + + assertNotNull(created.getAllowedSites()); + assertTrue(created.getAllowedSites().isEmpty()); + assertTrue(created.getAllowedTypes().contains(ClientType.DSP)); + } + + @Test + public void createKeysetForSite_newKeyset_hasEmptyAllowedSitesAndNullType() throws Exception { + setKeysets(new HashMap<>()); + KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); + + AdminKeyset created = keysetManager.createAndAddKeyset(42, new HashSet<>(), null); + + assertNotNull(created.getAllowedSites()); + assertTrue(created.getAllowedSites().isEmpty()); + assertNull(created.getAllowedTypes()); + } @Test public void testLookUpKeyset() { diff --git a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java index 13d30bfb2..20255d57c 100644 --- a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java @@ -51,7 +51,7 @@ private void compareKeysetTypeListToResult(AdminKeyset keyset, JsonArray actualL .collect(Collectors.toSet()); assertEquals(keyset.getAllowedTypes(), actualSet); } - + private void mockSiteExistence(Integer... sites){ for(Integer site : sites) { doReturn(new Site(site, "test-name", true, null)).when(siteProvider).getSite(site); @@ -249,6 +249,37 @@ void listSiteSetNew(Vertx vertx, VertxTestContext testContext) { }); } + @Test + void listSiteSetNewOmittedAllowedSites_emptyAllowedSitesNotNullWithDsp(Vertx vertx, VertxTestContext testContext) { + fakeAuth(Role.SHARING_PORTAL); + + Map keysets = new HashMap() {{ + put(3, new AdminKeyset(3, 5, "test", Set.of(4, 6, 7), Instant.now().getEpochSecond(), true, true, new HashSet<>())); + put(4, new AdminKeyset(4, 7, "test", Set.of(12), Instant.now().getEpochSecond(), true, true, new HashSet<>())); + put(5, new AdminKeyset(5, 4, "test", Set.of(5), Instant.now().getEpochSecond(), true, true, new HashSet<>())); + }}; + + setAdminKeysets(keysets); + mockSiteExistence(5, 7, 4, 8); + + String body = " {\n" + + " \"hash\": 0\n" + + " }"; + + post(vertx, testContext, "api/sharing/list/8", body, response -> { + assertEquals(200, response.statusCode()); + + AdminKeyset expected = new AdminKeyset(6, 8, "", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(6).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(6).getAllowedTypes()); + + verify(keysetKeyManager).addKeysetKey(6); + testContext.completeNow(); + }); + } + @Test void listSiteSetNewWithType(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.SHARING_PORTAL); @@ -1196,6 +1227,7 @@ void KeysetSetUpdateNullAllowedSites(Vertx vertx, VertxTestContext testContext) compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(1).getAllowedTypes()); testContext.completeNow(); }); @@ -1225,6 +1257,7 @@ void KeysetSetUpdateExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext tes compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(1).getAllowedTypes()); testContext.completeNow(); }); From 65f4fd70319be1a1808a15b56c3c9f7a6ae51d81 Mon Sep 17 00:00:00 2001 From: Release Workflow Date: Wed, 25 Mar 2026 20:58:03 +0000 Subject: [PATCH 04/13] [CI Pipeline] Released Snapshot version: 6.13.1-alpha-225-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a6e03eb58..397726dbf 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.uid2 uid2-admin - 6.13.0 + 6.13.1-alpha-225-SNAPSHOT UTF-8 From 4df44b5af9ab9d4cb1a845dc84dee9fa7ad8e9d0 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Wed, 25 Mar 2026 14:16:00 -0700 Subject: [PATCH 05/13] Ignore for testing --- .trivyignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.trivyignore b/.trivyignore index 80238c497..5b74ac583 100644 --- a/.trivyignore +++ b/.trivyignore @@ -17,3 +17,6 @@ CVE-2026-1584 exp:2026-08-27 # jackson-core async parser DoS - not exploitable, services only use synchronous ObjectMapper API # See: UID2-6670 GHSA-72hv-8253-57qq exp:2026-09-01 + +# for test +CVE-2026-32767 exp:2026-04-01 From 7dc2bdf35c558614623ff9ba55a1a0be0a061849 Mon Sep 17 00:00:00 2001 From: Release Workflow Date: Wed, 25 Mar 2026 21:18:27 +0000 Subject: [PATCH 06/13] [CI Pipeline] Released Snapshot version: 6.13.2-alpha-226-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 397726dbf..1180c2403 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.uid2 uid2-admin - 6.13.1-alpha-225-SNAPSHOT + 6.13.2-alpha-226-SNAPSHOT UTF-8 From 6dbf9d895b32d30b609392b8218b1960a63363d4 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Wed, 25 Mar 2026 19:32:11 -0700 Subject: [PATCH 07/13] Remove test --- .trivyignore | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.trivyignore b/.trivyignore index 5b74ac583..71e18c36c 100644 --- a/.trivyignore +++ b/.trivyignore @@ -16,7 +16,4 @@ CVE-2026-1584 exp:2026-08-27 # jackson-core async parser DoS - not exploitable, services only use synchronous ObjectMapper API # See: UID2-6670 -GHSA-72hv-8253-57qq exp:2026-09-01 - -# for test -CVE-2026-32767 exp:2026-04-01 +GHSA-72hv-8253-57qq exp:2026-09-01 \ No newline at end of file From 79a2742f6321ef296b46c03f4213c940f87a6f52 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Thu, 26 Mar 2026 01:44:13 -0700 Subject: [PATCH 08/13] Address comments --- pom.xml | 2 +- src/test/java/com/uid2/admin/managers/KeysetManagerTest.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1180c2403..a6e03eb58 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.uid2 uid2-admin - 6.13.2-alpha-226-SNAPSHOT + 6.13.0 UTF-8 diff --git a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java index ec3449976..31a5c3d8d 100644 --- a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java +++ b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java @@ -212,7 +212,8 @@ public void createKeysetForSite_newKeyset_hasNonNullEmptyAllowedSitesAndDspType( } @Test - public void createKeysetForSite_newKeyset_hasEmptyAllowedSitesAndNullType() throws Exception { + public void createAndAddKeyset_emptyAllowedSites_nullAllowedTypes_hasEmptySitesAndNullAllowedTypes() + throws Exception { setKeysets(new HashMap<>()); KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); From 94c9ec5e6e52a8bae5c3f7e162679c625d4b7620 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Thu, 26 Mar 2026 02:31:29 -0700 Subject: [PATCH 09/13] Address comments --- .../uid2/admin/managers/KeysetManager.java | 8 -- .../admin/vertx/service/SharingService.java | 4 - .../admin/managers/KeysetManagerTest.java | 25 ------- .../uid2/admin/vertx/SharingServiceTest.java | 75 +++++++++++++++++-- 4 files changed, 70 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/uid2/admin/managers/KeysetManager.java b/src/main/java/com/uid2/admin/managers/KeysetManager.java index e878cb208..39b566773 100644 --- a/src/main/java/com/uid2/admin/managers/KeysetManager.java +++ b/src/main/java/com/uid2/admin/managers/KeysetManager.java @@ -122,14 +122,6 @@ private Optional getAdminKeysetBySiteId(int siteId) { public AdminKeyset createAndAddKeyset(Integer siteId, Set allowedSites, Set allowedTypes) throws Exception{ if(!enableKeysets) return null; - if (allowedSites == null) { - allowedSites = new HashSet<>(); - Set typesWithDsp = (allowedTypes == null) - ? new HashSet<>() - : new HashSet<>(allowedTypes); - typesWithDsp.add(ClientType.DSP); - allowedTypes = typesWithDsp; - } int newKeysetId = getNextKeysetId(); AdminKeyset keyset = new AdminKeyset(newKeysetId, siteId, "", allowedSites, Instant.now().getEpochSecond(), true, true, allowedTypes); diff --git a/src/main/java/com/uid2/admin/vertx/service/SharingService.java b/src/main/java/com/uid2/admin/vertx/service/SharingService.java index e571079d1..37f6ecc02 100644 --- a/src/main/java/com/uid2/admin/vertx/service/SharingService.java +++ b/src/main/java/com/uid2/admin/vertx/service/SharingService.java @@ -447,10 +447,6 @@ private AdminKeyset setAdminKeyset(RoutingContext rc, JsonArray allowedSites, Js } } - if (allowedSites == null) { - newAllowedTypes.add(ClientType.DSP); - } - final AdminKeyset newKeyset = new AdminKeyset(keysetId, siteId, name, newlist, Instant.now().getEpochSecond(), true, true, newAllowedTypes); diff --git a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java index 31a5c3d8d..cd7b2b1c9 100644 --- a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java +++ b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java @@ -174,31 +174,6 @@ public void testCreateKeysetForClient() throws Exception { assertEquals(7, keysets.keySet().size()); } - @Test - public void createAndAddKeyset_nullAllowedSites_storesEmptySetNotNullAndAddsDspWhenTypesNull() throws Exception { - setKeysets(new HashMap<>()); - KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); - - AdminKeyset created = keysetManager.createAndAddKeyset(42, null, null); - - assertNotNull(created.getAllowedSites()); - assertTrue(created.getAllowedSites().isEmpty()); - assertEquals(Set.of(ClientType.DSP), created.getAllowedTypes()); - } - - @Test - public void createAndAddKeyset_nullAllowedSites_preservesOtherTypesAndAddsDsp() throws Exception { - setKeysets(new HashMap<>()); - KeysetManager keysetManager = new KeysetManager(keysetProvider, keysetStoreWriter, keysetKeyManager, true); - - AdminKeyset created = keysetManager.createAndAddKeyset(42, null, new HashSet<>(Set.of(ClientType.ADVERTISER))); - - assertNotNull(created.getAllowedSites()); - assertTrue(created.getAllowedSites().isEmpty()); - assertTrue(created.getAllowedTypes().contains(ClientType.DSP)); - assertTrue(created.getAllowedTypes().contains(ClientType.ADVERTISER)); - } - @Test public void createKeysetForSite_newKeyset_hasNonNullEmptyAllowedSitesAndDspType() throws Exception { setKeysets(new HashMap<>()); diff --git a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java index 20255d57c..64b213d4c 100644 --- a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java @@ -269,7 +269,7 @@ void listSiteSetNewOmittedAllowedSites_emptyAllowedSitesNotNullWithDsp(Vertx ver post(vertx, testContext, "api/sharing/list/8", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(6, 8, "", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + AdminKeyset expected = new AdminKeyset(6, 8, "", Set.of(), Instant.now().getEpochSecond(), true, true, new HashSet<>()); compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(6).getAllowedSites()); @@ -1163,7 +1163,7 @@ void KeysetSetNewNullAllowedSites(Vertx vertx, VertxTestContext testContext) { // Next keyset id is max(existing ids, 3) + 1 => 4 when only keyset 1 exists int newKeysetId = 4; - AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, new HashSet<>()); compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); @@ -1194,7 +1194,72 @@ void KeysetSetNewExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext testCo assertEquals(200, response.statusCode()); int newKeysetId = 4; - AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, new HashSet<>()); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes()); + + testContext.completeNow(); + }); + } + + @Test + void KeysetSetNewNullAllowedSitesNonEmptyAllowedTypes(Vertx vertx, VertxTestContext testContext) { + fakeAuth(Role.MAINTAINER); + + mockSiteExistence(5, 3); + + Map keysets = new HashMap() {{ + put(1, new AdminKeyset(1, 5, "test", Set.of(4, 6, 7), Instant.now().getEpochSecond(), true, true, new HashSet<>())); + }}; + + setAdminKeysets(keysets); + + String body = " {\n" + + " \"site_id\": 3,\n" + + " \"allowed_types\": [ \"ADVERTISER\" ]\n" + + " }"; + + post(vertx, testContext, "api/sharing/keyset", body, response -> { + assertEquals(200, response.statusCode()); + + int newKeysetId = 4; + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, + Set.of(ClientType.ADVERTISER)); + compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); + compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); + assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); + assertEquals(expected.getAllowedTypes(), keysets.get(newKeysetId).getAllowedTypes()); + + testContext.completeNow(); + }); + } + + @Test + void KeysetSetNewExplicitlyNullAllowedSitesNonEmptyAllowedTypes(Vertx vertx, VertxTestContext testContext) { + fakeAuth(Role.MAINTAINER); + + mockSiteExistence(5, 3); + + Map keysets = new HashMap() {{ + put(1, new AdminKeyset(1, 5, "test", Set.of(4, 6, 7), Instant.now().getEpochSecond(), true, true, new HashSet<>())); + }}; + + setAdminKeysets(keysets); + + String body = " {\n" + + " \"site_id\": 3,\n" + + " \"allowed_sites\": null,\n" + + " \"allowed_types\": [ \"ADVERTISER\" ]\n" + + " }"; + + post(vertx, testContext, "api/sharing/keyset", body, response -> { + assertEquals(200, response.statusCode()); + + int newKeysetId = 4; + AdminKeyset expected = new AdminKeyset(newKeysetId, 3, "", new HashSet<>(), Instant.now().getEpochSecond(), true, true, + Set.of(ClientType.ADVERTISER)); compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(newKeysetId).getAllowedSites()); @@ -1223,7 +1288,7 @@ void KeysetSetUpdateNullAllowedSites(Vertx vertx, VertxTestContext testContext) post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, new HashSet<>()); compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); @@ -1253,7 +1318,7 @@ void KeysetSetUpdateExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext tes post(vertx, testContext, "api/sharing/keyset", body, response -> { assertEquals(200, response.statusCode()); - AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, Set.of(ClientType.DSP)); + AdminKeyset expected = new AdminKeyset(1, 5, "test", Set.of(), Instant.now().getEpochSecond(), true, true, new HashSet<>()); compareKeysetListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_sites")); compareKeysetTypeListToResult(expected, response.bodyAsJsonObject().getJsonArray("allowed_types")); assertEquals(expected.getAllowedSites(), keysets.get(1).getAllowedSites()); From 7ef104346f5462c3924130051a19954d77adc636 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Thu, 26 Mar 2026 14:11:36 -0700 Subject: [PATCH 10/13] Replaced createDefaultKeyset with createKeysetSharedWithDsps --- .../uid2/admin/managers/KeysetManager.java | 4 +- .../vertx/service/EncryptionKeyService.java | 2 +- .../admin/managers/KeysetManagerTest.java | 42 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/uid2/admin/managers/KeysetManager.java b/src/main/java/com/uid2/admin/managers/KeysetManager.java index 39b566773..89011064e 100644 --- a/src/main/java/com/uid2/admin/managers/KeysetManager.java +++ b/src/main/java/com/uid2/admin/managers/KeysetManager.java @@ -53,7 +53,7 @@ public static Integer getMaxKeyset(Map keysets) { return max(Collections.max(keysets.keySet()), 3); } - public static AdminKeyset createDefaultKeyset(int siteId, int keysetId) { + public static AdminKeyset createKeysetSharedWithDsps(int siteId, int keysetId) { String name = ""; //only set if both siteId and keysetId match our expectation according to the requirements @@ -138,7 +138,7 @@ private AdminKeyset createAndAddDefaultKeyset(Integer siteId) throws Exception{ this.keysetProvider.loadContent(); int newKeysetId = getNextKeysetId(); - AdminKeyset newKeyset = KeysetManager.createDefaultKeyset(siteId, newKeysetId); + AdminKeyset newKeyset = KeysetManager.createKeysetSharedWithDsps(siteId, newKeysetId); addOrReplaceKeyset(newKeyset); return newKeyset; } diff --git a/src/main/java/com/uid2/admin/vertx/service/EncryptionKeyService.java b/src/main/java/com/uid2/admin/vertx/service/EncryptionKeyService.java index a07551b71..530b99291 100644 --- a/src/main/java/com/uid2/admin/vertx/service/EncryptionKeyService.java +++ b/src/main/java/com/uid2/admin/vertx/service/EncryptionKeyService.java @@ -548,7 +548,7 @@ else if(siteId == Const.Data.RefreshKeySiteId) { else if(siteId == Const.Data.AdvertisingTokenSiteId) { newKeysetId = Const.Data.FallbackPublisherKeysetId; } - keyset = createDefaultKeyset(siteId, newKeysetId); + keyset = createKeysetSharedWithDsps(siteId, newKeysetId); currentKeysets.put(newKeysetId, keyset); keysetStoreWriter.upload(currentKeysets, null); } diff --git a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java index cd7b2b1c9..8d33b2a05 100644 --- a/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java +++ b/src/test/java/com/uid2/admin/managers/KeysetManagerTest.java @@ -58,16 +58,16 @@ public void testAddOrReplaceKeyset() throws Exception{ keysetKeyManager, true); Map keysets = new HashMap() {{ - put(1, KeysetManager.createDefaultKeyset(3, 1)); - put(2, KeysetManager.createDefaultKeyset(4, 2)); - put(3, KeysetManager.createDefaultKeyset(5, 3)); - put(4, KeysetManager.createDefaultKeyset(6, 4)); + put(1, KeysetManager.createKeysetSharedWithDsps(3, 1)); + put(2, KeysetManager.createKeysetSharedWithDsps(4, 2)); + put(3, KeysetManager.createKeysetSharedWithDsps(5, 3)); + put(4, KeysetManager.createKeysetSharedWithDsps(6, 4)); }}; setKeysets(keysets); final int keysetId = 5; // add new keyset - AdminKeyset keyset1 = KeysetManager.createDefaultKeyset(7, keysetId); + AdminKeyset keyset1 = KeysetManager.createKeysetSharedWithDsps(7, keysetId); keysetManager.addOrReplaceKeyset(keyset1); assertTrue(keysets.containsKey(5)); assertTrue(keyset1.equals(keysets.get(5))); @@ -102,7 +102,7 @@ public void createsKeysetWhenNoneExists() throws Exception { @Test public void doesNotCreateKeysetWhenOneExists() throws Exception { - final AdminKeyset keyset = KeysetManager.createDefaultKeyset(1, 1); + final AdminKeyset keyset = KeysetManager.createKeysetSharedWithDsps(1, 1); final HashMap keysets = new HashMap<>(); keysets.put(1, keyset); @@ -135,10 +135,10 @@ public void testCreateKeysetForClient() throws Exception { keysetKeyManager, true); Map keysets = new HashMap() {{ - put(1, KeysetManager.createDefaultKeyset(3, 1)); - put(2, KeysetManager.createDefaultKeyset(4, 2)); - put(3, KeysetManager.createDefaultKeyset(5, 3)); - put(4, KeysetManager.createDefaultKeyset(6, 4)); + put(1, KeysetManager.createKeysetSharedWithDsps(3, 1)); + put(2, KeysetManager.createKeysetSharedWithDsps(4, 2)); + put(3, KeysetManager.createKeysetSharedWithDsps(5, 3)); + put(4, KeysetManager.createKeysetSharedWithDsps(6, 4)); }}; setKeysets(keysets); @@ -254,33 +254,33 @@ public void testGetMaxKeyset() { public void testKeysetNameCreation() { //expected cases of special keysets when site id and keyset id match our expectations - AdminKeyset keyset = createDefaultKeyset(-1, -1); + AdminKeyset keyset = createKeysetSharedWithDsps(-1, -1); assertEquals(keyset.getName(), KeysetManager.MasterKeysetName); - keyset = createDefaultKeyset(-2, -2); + keyset = createKeysetSharedWithDsps(-2, -2); assertEquals(keyset.getName(), KeysetManager.RefreshKeysetName); - keyset = createDefaultKeyset(2, 2); + keyset = createKeysetSharedWithDsps(2, 2); assertEquals(keyset.getName(), KeysetManager.FallbackPublisherKeysetName); //only site id matches but keyset id aren't the same as what we expected - keyset = createDefaultKeyset(-1, 3); + keyset = createKeysetSharedWithDsps(-1, 3); assertEquals(keyset.getName(), ""); - keyset = createDefaultKeyset(-2, 34); + keyset = createKeysetSharedWithDsps(-2, 34); assertEquals(keyset.getName(), ""); - keyset = createDefaultKeyset(2, 56); + keyset = createKeysetSharedWithDsps(2, 56); assertEquals(keyset.getName(), ""); //only keyset id matches but site Id aren't the same as what we expected - keyset = createDefaultKeyset(-5, 1); + keyset = createKeysetSharedWithDsps(-5, 1); assertEquals(keyset.getName(), ""); - keyset = createDefaultKeyset(-3, 2); + keyset = createKeysetSharedWithDsps(-3, 2); assertEquals(keyset.getName(), ""); - keyset = createDefaultKeyset(20, 3); + keyset = createKeysetSharedWithDsps(20, 3); assertEquals(keyset.getName(), ""); //for any other normal keyset creation - keyset = createDefaultKeyset(6, 7); + keyset = createKeysetSharedWithDsps(6, 7); assertEquals(keyset.getName(), ""); - keyset = createDefaultKeyset(9, 23); + keyset = createKeysetSharedWithDsps(9, 23); assertEquals(keyset.getName(), ""); } From 42b08f75e34cdb4ff949508cf40c7c9c509f7fa1 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Thu, 26 Mar 2026 14:14:15 -0700 Subject: [PATCH 11/13] Remove resetAllowedSitesToNull --- webroot/adm/keyset.html | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/webroot/adm/keyset.html b/webroot/adm/keyset.html index 6ad5413cd..c1633c09c 100644 --- a/webroot/adm/keyset.html +++ b/webroot/adm/keyset.html @@ -202,20 +202,6 @@

UID2 Env - Keyset Access Management

keyset_id: parseInt(inputs.keysetId) }) } - }, - { - id: 'resetAllowedSitesToNull', - title: 'Reset Allowed Sites To Null', - role: 'maintainer', - inputs: [keysetIdInput], - apiCall: { - method: 'POST', - url: '/api/sharing/keyset', - getPayload: (inputs) => ({ - allowed_sites: null, - keyset_id: parseInt(inputs.keysetId) - }) - } } ] }; From c26127439489f4d76a260cb4b69c88ededf8d8fd Mon Sep 17 00:00:00 2001 From: Release Workflow Date: Thu, 26 Mar 2026 21:16:30 +0000 Subject: [PATCH 12/13] [CI Pipeline] Released Snapshot version: 6.13.1-alpha-227-SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a6e03eb58..6d003d438 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.uid2 uid2-admin - 6.13.0 + 6.13.1-alpha-227-SNAPSHOT UTF-8 From 869e05f9e2d59ca69bb09019eea89132a055bbe3 Mon Sep 17 00:00:00 2001 From: Caroline6312 Date: Fri, 27 Mar 2026 19:03:59 -0700 Subject: [PATCH 13/13] Update unit test names in SharingServiceTest --- .../java/com/uid2/admin/vertx/SharingServiceTest.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java index 64b213d4c..d8a7c5219 100644 --- a/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java +++ b/src/test/java/com/uid2/admin/vertx/SharingServiceTest.java @@ -250,7 +250,7 @@ void listSiteSetNew(Vertx vertx, VertxTestContext testContext) { } @Test - void listSiteSetNewOmittedAllowedSites_emptyAllowedSitesNotNullWithDsp(Vertx vertx, VertxTestContext testContext) { + void listSiteSetNewAllowedSitesMissingInRequest(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.SHARING_PORTAL); Map keysets = new HashMap() {{ @@ -1142,8 +1142,9 @@ void KeysetSetNewDisallowMultipleForSite(Vertx vertx, VertxTestContext testConte }); } + // `allowed_sites = null` is no longer allowed in the admin UI. This test is retained to verify normalization: if `allowed_sites` is null or missing, it should be converted to an empty set.` @Test - void KeysetSetNewNullAllowedSites(Vertx vertx, VertxTestContext testContext) { + void KeysetSetNewAllowedSitesMissingInRequest(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.MAINTAINER); mockSiteExistence(5, 3); @@ -1174,7 +1175,7 @@ void KeysetSetNewNullAllowedSites(Vertx vertx, VertxTestContext testContext) { } @Test - void KeysetSetNewExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext testContext) { + void KeysetSetUsingNewExplicitlyNullAllowedSitesInput(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.MAINTAINER); mockSiteExistence(5, 3); @@ -1205,7 +1206,7 @@ void KeysetSetNewExplicitlyNullAllowedSites(Vertx vertx, VertxTestContext testCo } @Test - void KeysetSetNewNullAllowedSitesNonEmptyAllowedTypes(Vertx vertx, VertxTestContext testContext) { + void KeysetSetAllowedSitesMissingWithNonEmptyAllowedTypesInput(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.MAINTAINER); mockSiteExistence(5, 3); @@ -1237,7 +1238,7 @@ void KeysetSetNewNullAllowedSitesNonEmptyAllowedTypes(Vertx vertx, VertxTestCont } @Test - void KeysetSetNewExplicitlyNullAllowedSitesNonEmptyAllowedTypes(Vertx vertx, VertxTestContext testContext) { + void KeysetSetWithExplicitNullAllowedSitesAndNonEmptyAllowedTypesInput(Vertx vertx, VertxTestContext testContext) { fakeAuth(Role.MAINTAINER); mockSiteExistence(5, 3);