Skip to content

Commit 4e21863

Browse files
authored
Merge pull request #554 from IABTechLab/wzh-UID2-5765-enclaveID-registration-authorization
Wzh UI d2 5765 enclave id registration authorization
2 parents de1b73a + e2d70b9 commit 4e21863

File tree

4 files changed

+27
-3
lines changed

4 files changed

+27
-3
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>10.9.0</uid2-shared.version>
19+
<uid2-shared.version>10.9.4</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/auth/OktaCustomScope.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public enum OktaCustomScope {
1111
SECRET_ROTATION("uid2.admin.secret-rotation", Role.SECRET_ROTATION),
1212
SITE_SYNC("uid2.admin.site-sync", Role.PRIVATE_OPERATOR_SYNC),
1313
METRICS_EXPORT("uid2.admin.metrics-export", Role.METRICS_EXPORT),
14+
ENCLAVE_REGISTRAR("uid2.admin.enclave-registrar", Role.ENCLAVE_REGISTRAR),
1415
INVALID("invalid", Role.UNKNOWN);
1516
private final String name;
1617
private final Role role;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void setupRoutes(Router router) {
5757
synchronized (writeLock) {
5858
this.handleEnclaveAdd(ctx);
5959
}
60-
}, new AuditParams(List.of("name", "protocol", "enclave_id"), Collections.emptyList()), Role.PRIVILEGED));
60+
}, new AuditParams(List.of("name", "protocol", "enclave_id"), Collections.emptyList()), Role.PRIVILEGED, Role.ENCLAVE_REGISTRAR));
6161
router.post(API_ENCLAVE_DEL.toString()).blockingHandler(auth.handle((ctx) -> {
6262
synchronized (writeLock) {
6363
this.handleEnclaveDel(ctx);

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

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void enclaveId_Add_Success(String protocol, Vertx vertx, VertxTestContext
9696
}
9797

9898
@ParameterizedTest
99-
@EnumSource(value = Role.class, names = {"PRIVILEGED", "SUPER_USER"}, mode = EnumSource.Mode.EXCLUDE)
99+
@EnumSource(value = Role.class, names = {"PRIVILEGED", "SUPER_USER", "ENCLAVE_REGISTRAR"}, mode = EnumSource.Mode.EXCLUDE)
100100
public void enclaveId_Add_NotAuthorized(Role role, Vertx vertx, VertxTestContext vertxTestContext) {
101101
fakeAuth(role);
102102

@@ -238,4 +238,27 @@ public void enclaveId_Delete_NotAuthorized(Role role, Vertx vertx, VertxTestCont
238238
});
239239
}
240240

241+
@ParameterizedTest
242+
@ValueSource(strings = {
243+
"/api/enclave/list",
244+
"/api/enclave/metadata",
245+
"/api/enclave/del?name=some-name",
246+
})
247+
public void enclaveId_Endpoints_NotAuthorized_ForEnclaveRegistrar(String url, Vertx vertx, VertxTestContext vertxTestContext) {
248+
fakeAuth(Role.ENCLAVE_REGISTRAR);
249+
250+
// Use GET for list/metadata, POST for delete
251+
if (url.contains("/del")) {
252+
post(vertx, vertxTestContext, url, "", response -> {
253+
assertEquals(401, response.statusCode());
254+
vertxTestContext.completeNow();
255+
});
256+
} else {
257+
get(vertx, vertxTestContext, url, response -> {
258+
assertEquals(401, response.statusCode());
259+
vertxTestContext.completeNow();
260+
});
261+
}
262+
}
263+
241264
}

0 commit comments

Comments
 (0)