Skip to content

Commit 7324f38

Browse files
committed
1 parent 58f7d90 commit 7324f38

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

manage-server/src/main/java/manage/hook/ProvisioningHook.java

+13-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ private void validate(MetaData newMetaData) {
6464
Schema schema = metaDataAutoConfiguration.schema(EntityType.PROV.getType());
6565
String provisioningType = (String) metaDataFields.get("provisioning_type");
6666
Map.of(
67-
"scim", List.of("scim_url", "scim_user", "scim_password"),
67+
"scim", List.of("scim_url"),
6868
"graph", List.of("graph_client_id", "graph_secret", "graph_tenant"),
6969
"eva", List.of("eva_url", "eva_token")
7070
).forEach((type, required) -> {
@@ -77,6 +77,18 @@ private void validate(MetaData newMetaData) {
7777
});
7878
}
7979
});
80+
if (provisioningType.equals("scim")) {
81+
if (!StringUtils.hasText((String) metaDataFields.get("scim_bearer_token"))) {
82+
List.of("scim_user", "scim_password").forEach(attribute -> {
83+
if (!StringUtils.hasText((String) metaDataFields.get(attribute))) {
84+
failures.add(new ValidationException(schema,
85+
String.format("%s is required with provisioningType scim when no scim_bearer_token is configured",
86+
attribute), attribute));
87+
}
88+
});
89+
90+
}
91+
}
8092
ValidationException.throwFor(schema, failures);
8193
}
8294

manage-server/src/test/java/manage/hook/ProvisioningHookTest.java

+7
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ public void prePost() {
5858
assertThrows(ValidationException.class, () -> provisioningHook.prePost(metaData, apiUser));
5959
}
6060

61+
@Test
62+
public void prePostValid() {
63+
MetaData metaData = new MetaData(EntityType.PROV.getType(), new HashMap<>(Map.of("metaDataFields",
64+
Map.of("provisioning_type", "scim", "scim_url", "http://scim", "scim_bearer_token", "token"))));
65+
provisioningHook.prePost(metaData, apiUser);
66+
}
67+
6168
@Test
6269
@SuppressWarnings("unchecked")
6370
public void prePostEduIDScimProvisioningMissingInstitutionGUID() {

0 commit comments

Comments
 (0)