org.keycloak.component

## Interface ComponentFactory<CreatedType,ProviderType extends Provider>

- All Superinterfaces:
    ConfiguredProvider, ProviderFactory<ProviderType>
  All Known Subinterfaces:
    AmphibianProviderFactory<ProviderType>, ClientRegistrationPolicyFactory, ClientScopeStorageProviderFactory<T>, ClientStorageProviderFactory<T>, GroupStorageProviderFactory<T>, KeyProviderFactory<T>, LDAPStorageMapperFactory<T>, MapStorageProviderFactory, RoleStorageProviderFactory<T>, SubComponentFactory<CreatedType,ProviderType>, UserStorageProviderFactory<T>
  All Known Implementing Classes:
    AbstractClientRegistrationPolicyFactory, AbstractEcdsaKeyProviderFactory, AbstractGeneratedSecretKeyProviderFactory, AbstractLDAPStorageMapperFactory, AbstractMapProviderFactory, AbstractRsaKeyProviderFactory, CertificateLDAPStorageMapperFactory, ClientDisabledClientRegistrationPolicyFactory, ClientScopesClientRegistrationPolicyFactory, ConcurrentHashMapStorageProviderFactory, ConsentRequiredClientRegistrationPolicyFactory, FullNameLDAPStorageMapperFactory, GeneratedAesKeyProviderFactory, GeneratedEcdsaKeyProviderFactory, GeneratedHmacKeyProviderFactory, GeneratedRsaKeyProviderFactory, GroupLDAPStorageMapperFactory, HardcodedAttributeMapperFactory, HardcodedLDAPAttributeMapperFactory, HardcodedLDAPGroupStorageMapperFactory, HardcodedLDAPRoleStorageMapperFactory, ImportedRsaKeyProviderFactory, JavaKeystoreKeyProviderFactory, KerberosFederationProviderFactory, LDAPStorageProviderFactory, MapAuthorizationStoreFactory, MapClientProviderFactory, MapClientScopeProviderFactory, MapGroupProviderFactory, MapRealmProviderFactory, MapRoleProviderFactory, MapRootAuthenticationSessionProviderFactory, MapUserLoginFailureProviderFactory, MapUserProviderFactory, MapUserSessionProviderFactory, MaxClientsClientRegistrationPolicyFactory, MSADLDSUserAccountControlStorageMapperFactory, MSADUserAccountControlStorageMapperFactory, OpenshiftClientStorageProviderFactory, ProtocolMappersClientRegistrationPolicyFactory, RoleLDAPStorageMapperFactory, ScopeClientRegistrationPolicyFactory, SSSDFederationProviderFactory, TrustedHostClientRegistrationPolicyFactory, UserAttributeLDAPStorageMapperFactory

      public interface ComponentFactory<CreatedType,ProviderType extends Provider>
      extends ProviderFactory<ProviderType>, ConfiguredProvider

  Version:
    $Revision: 1 $
  Author:
    Bill Burke

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default ProviderType` | `create(KeycloakSession session)`
    `CreatedType` | `create(KeycloakSession session, ComponentModel model)`
    `default List<ProviderConfigProperty>` | `getCommonProviderConfigProperties()` These are config properties that are common across all implementation of this component type
    `default Map<String,Object>` | `getTypeMetadata()` This is metadata about this component type.
    `default void` | `onCreate(KeycloakSession session, RealmModel realm, ComponentModel model)` Called after a component is created
    `default void` | `onUpdate(KeycloakSession session, RealmModel realm, ComponentModel oldModel, ComponentModel newModel)` Called after the component is updated.
    `default void` | `preRemove(KeycloakSession session, RealmModel realm, ComponentModel model)` Called before the component is removed.
    `default void` | `validateConfiguration(KeycloakSession session, RealmModel realm, ComponentModel model)` Called before a component is created or updated.

    - ### Methods inherited from interface org.keycloak.provider.ProviderFactory

      `close, getId, init, order, postInit`

    - ### Methods inherited from interface org.keycloak.provider.ConfiguredProvider

      `getConfigProperties, getHelpText`

- - ### Method Detail

    - #### create

          CreatedType create(KeycloakSession session,
                             ComponentModel model)

    - #### create

          default ProviderType create(KeycloakSession session)

      Specified by:
        `create` in interface `ProviderFactory<ProviderType extends Provider>`

    - #### validateConfiguration

          default void validateConfiguration(KeycloakSession session,
                                             RealmModel realm,
                                             ComponentModel model)
                                      throws ComponentValidationException

      Called before a component is created or updated. Allows you to validate the configuration
      Parameters:
        `session` -
        `realm` -
        `model` -
      Throws:
        `ComponentValidationException`

    - #### onCreate

          default void onCreate(KeycloakSession session,
                                RealmModel realm,
                                ComponentModel model)

      Called after a component is created
      Parameters:
        `session` -
        `realm` -
        `model` -

    - #### onUpdate

          default void onUpdate(KeycloakSession session,
                                RealmModel realm,
                                ComponentModel oldModel,
                                ComponentModel newModel)

      Called after the component is updated.
      Parameters:
        `session` -
        `realm` -
        `oldModel` - old saved model
        `newModel` - new configuration

    - #### preRemove

          default void preRemove(KeycloakSession session,
                                 RealmModel realm,
                                 ComponentModel model)

      Called before the component is removed.
      Parameters:
        `session` -
        `realm` -
        `model` - model of the component, which is going to be removed

    - #### getCommonProviderConfigProperties

          default List<ProviderConfigProperty> getCommonProviderConfigProperties()

      These are config properties that are common across all implementation of this component type
      Returns:

    - #### getTypeMetadata

          default Map<String,Object> getTypeMetadata()

      This is metadata about this component type. Its really configuration information about the component type and not an individual instance
      Returns:

Copyright © 2021 JBoss by Red Hat. All rights reserved.