Interface AmphibianProviderFactory<ProviderType extends org.keycloak.provider.Provider>

All Superinterfaces:
org.keycloak.component.ComponentFactory<ProviderType,ProviderType>, org.keycloak.provider.ConfiguredProvider, org.keycloak.provider.ProviderFactory<ProviderType>

public interface AmphibianProviderFactory<ProviderType extends org.keycloak.provider.Provider> extends org.keycloak.provider.ProviderFactory<ProviderType>, org.keycloak.component.ComponentFactory<ProviderType,ProviderType>
Ancestor for a provider factory for both a standalone ProviderFactory and a ComponentFactory. It behaves as usual for a standalone provider, and for a component creates a factory customized according to configuration of this component. The component creation then behaves in the same way as if it was a standalone component, i.e.:
  • The component-specific factory is initialized via ProviderFactory.init(org.keycloak.Config.Scope) method where the configuration is taken from the component configuration, converted into a Config.Scope. The component configuration takes precedence over configuration of the provider factory.
  • Creation of the instances is done via standard create(KeycloakSession) method even for components, since there is now a specific factory per component.
  • Component-specific factories are cached inside the provider factory similarly to how provider factories are cached in the session factory.
Author:
hmlnarik
See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
     
    create(org.keycloak.models.KeycloakSession session)
     
    default ProviderType
    create(org.keycloak.models.KeycloakSession session, org.keycloak.component.ComponentModel model)
    Deprecated.
    default List<org.keycloak.provider.ProviderConfigProperty>
     
    default void
    onUpdate(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.component.ComponentModel oldModel, org.keycloak.component.ComponentModel newModel)
     
    default void
    preRemove(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.component.ComponentModel model)
     

    Methods inherited from interface org.keycloak.component.ComponentFactory

    getCommonProviderConfigProperties, getTypeMetadata, isInternal, onCreate, validateConfiguration

    Methods inherited from interface org.keycloak.provider.ConfiguredProvider

    getConfig, getHelpText

    Methods inherited from interface org.keycloak.provider.ProviderFactory

    dependsOn, getConfigMetadata, getId, init, order, postInit
  • Method Details

    • create

      ProviderType create(org.keycloak.models.KeycloakSession session)
      Specified by:
      create in interface org.keycloak.component.ComponentFactory<ProviderType extends org.keycloak.provider.Provider,ProviderType extends org.keycloak.provider.Provider>
      Specified by:
      create in interface org.keycloak.provider.ProviderFactory<ProviderType extends org.keycloak.provider.Provider>
    • create

      @Deprecated default ProviderType create(org.keycloak.models.KeycloakSession session, org.keycloak.component.ComponentModel model)
      Deprecated.
      Specified by:
      create in interface org.keycloak.component.ComponentFactory<ProviderType extends org.keycloak.provider.Provider,ProviderType extends org.keycloak.provider.Provider>
    • getConfigProperties

      default List<org.keycloak.provider.ProviderConfigProperty> getConfigProperties()
      Specified by:
      getConfigProperties in interface org.keycloak.provider.ConfiguredProvider
    • onUpdate

      default void onUpdate(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.component.ComponentModel oldModel, org.keycloak.component.ComponentModel newModel)
      Specified by:
      onUpdate in interface org.keycloak.component.ComponentFactory<ProviderType extends org.keycloak.provider.Provider,ProviderType extends org.keycloak.provider.Provider>
    • preRemove

      default void preRemove(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.component.ComponentModel model)
      Specified by:
      preRemove in interface org.keycloak.component.ComponentFactory<ProviderType extends org.keycloak.provider.Provider,ProviderType extends org.keycloak.provider.Provider>
    • close

      default void close()
      Specified by:
      close in interface org.keycloak.provider.ProviderFactory<ProviderType extends org.keycloak.provider.Provider>