Interface AmphibianProviderFactory<ProviderType extends Provider>

All Superinterfaces:
ComponentFactory<ProviderType,ProviderType>, ConfiguredProvider, ProviderFactory<ProviderType>
All Known Implementing Classes:
AbstractMapProviderFactory, ConcurrentHashMapStorageProviderFactory, DeclarativeUserProfileProvider, FileMapStorageProviderFactory, HotRodMapStorageProviderFactory, JpaMapStorageProviderFactory, LdapMapStorageProviderFactory, MapAuthorizationStoreFactory, MapClientProviderFactory, MapClientScopeProviderFactory, MapEventStoreProviderFactory, MapGlobalLockProviderFactory, MapGroupProviderFactory, MapPublicKeyStorageProviderFactory, MapRealmProviderFactory, MapRoleProviderFactory, MapRootAuthenticationSessionProviderFactory, MapSingleUseObjectProviderFactory, MapUserLoginFailureProviderFactory, MapUserProviderFactory, MapUserSessionProviderFactory

public interface AmphibianProviderFactory<ProviderType extends Provider> extends ProviderFactory<ProviderType>, 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: