Details
diff --git a/federation/kerberos/src/main/java/org/keycloak/federation/kerberos/KerberosFederationProviderFactory.java b/federation/kerberos/src/main/java/org/keycloak/federation/kerberos/KerberosFederationProviderFactory.java
index 92bd48e..e061f5e 100755
--- a/federation/kerberos/src/main/java/org/keycloak/federation/kerberos/KerberosFederationProviderFactory.java
+++ b/federation/kerberos/src/main/java/org/keycloak/federation/kerberos/KerberosFederationProviderFactory.java
@@ -151,7 +151,7 @@ public class KerberosFederationProviderFactory implements UserStorageProviderFac
}
@Override
- public void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel model) {
+ public void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel) {
CredentialHelper.setOrReplaceAuthenticationRequirement(session, realm, CredentialRepresentation.KERBEROS,
AuthenticationExecutionModel.Requirement.ALTERNATIVE, AuthenticationExecutionModel.Requirement.DISABLED);
}
diff --git a/federation/ldap/src/main/java/org/keycloak/storage/ldap/LDAPStorageProviderFactory.java b/federation/ldap/src/main/java/org/keycloak/storage/ldap/LDAPStorageProviderFactory.java
index 6d60ee7..8199157 100755
--- a/federation/ldap/src/main/java/org/keycloak/storage/ldap/LDAPStorageProviderFactory.java
+++ b/federation/ldap/src/main/java/org/keycloak/storage/ldap/LDAPStorageProviderFactory.java
@@ -375,8 +375,8 @@ public class LDAPStorageProviderFactory implements UserStorageProviderFactory<LD
}
@Override
- public void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel model) {
- checkKerberosCredential(session, realm, model);
+ public void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel) {
+ checkKerberosCredential(session, realm, newModel);
}
diff --git a/server-spi/src/main/java/org/keycloak/component/ComponentFactory.java b/server-spi/src/main/java/org/keycloak/component/ComponentFactory.java
index 50b16e4..695637f 100644
--- a/server-spi/src/main/java/org/keycloak/component/ComponentFactory.java
+++ b/server-spi/src/main/java/org/keycloak/component/ComponentFactory.java
@@ -39,20 +39,43 @@ public interface ComponentFactory<CreatedType, ProviderType extends Provider> ex
return null;
}
+ /**
+ * Called before a component is created or updated. Allows you to validate the configuration
+ *
+ * @param session
+ * @param realm
+ * @param model
+ * @throws ComponentValidationException
+ */
default
void validateConfiguration(KeycloakSession session, RealmModel realm, ComponentModel model) throws ComponentValidationException
{
}
+ /**
+ * Called after a component is created
+ *
+ * @param session
+ * @param realm
+ * @param model
+ */
default
void onCreate(KeycloakSession session, RealmModel realm, ComponentModel model) {
}
+ /**
+ * Called after the component is updated.
+ *
+ * @param session
+ * @param realm
+ * @param oldModel old saved model
+ * @param newModel new configuration
+ */
default
- void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel model) {
+ void onUpdate(KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel) {
}
diff --git a/server-spi-private/src/main/java/org/keycloak/models/utils/ComponentUtil.java b/server-spi-private/src/main/java/org/keycloak/models/utils/ComponentUtil.java
index 5547d32..fa66cb8 100644
--- a/server-spi-private/src/main/java/org/keycloak/models/utils/ComponentUtil.java
+++ b/server-spi-private/src/main/java/org/keycloak/models/utils/ComponentUtil.java
@@ -97,7 +97,7 @@ public class ComponentUtil {
}
public static void notifyUpdated(KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel) {
ComponentFactory factory = getComponentFactory(session, newModel);
- factory.onUpdate(session, realm, newModel);
+ factory.onUpdate(session, realm, oldModel, newModel);
if (factory instanceof UserStorageProviderFactory) {
((OnUpdateComponent)session.userStorageManager()).onUpdate(session, realm, oldModel, newModel);
}