Skip to content

Commit 897c44b

Browse files
graziangmposolda
authored andcommitted
Validation of providerId during required action registration
Closes #26109 Signed-off-by: Giuseppe Graziano <[email protected]>
1 parent 4f30400 commit 897c44b

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

services/src/main/java/org/keycloak/services/resources/admin/AuthenticationManagementResource.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1070,6 +1070,11 @@ public void registerRequiredAction(@Parameter(description = "JSON containing 'pr
10701070
auth.realm().requireManageRealm();
10711071

10721072
String providerId = data.get("providerId");
1073+
1074+
if (providerId == null || session.getKeycloakSessionFactory().getProviderFactory(RequiredActionProvider.class, providerId) == null) {
1075+
throw new BadRequestException("Required Action Provider with given providerId not found");
1076+
}
1077+
10731078
String name = data.get("name");
10741079
RequiredActionProviderModel requiredAction = new RequiredActionProviderModel();
10751080
requiredAction.setAlias(providerId);

testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/authentication/RequiredActionsTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,17 @@ public void testCRUDRequiredAction() {
109109
// Expected
110110
}
111111

112+
// Try to register required action with fake providerId
113+
RequiredActionProviderSimpleRepresentation requiredAction = new RequiredActionProviderSimpleRepresentation();
114+
requiredAction.setName("not-existent");
115+
requiredAction.setProviderId("not-existent");
116+
try {
117+
authMgmtResource.registerRequiredAction(requiredAction);
118+
Assert.fail("Didn't expect to register requiredAction with providerId: 'not-existent'");
119+
} catch (Exception ex) {
120+
// Expected
121+
}
122+
112123
// Try to find not-existent action - should fail
113124
try {
114125
authMgmtResource.getRequiredAction("not-existent");

0 commit comments

Comments
 (0)