Shared plugin interfaces
Plugin implementations generally invoke methods categorized as either configurable or describable. This document describes these types of plugins and how they are used in PingFederate.
Configurable plugin
Any custom plugin that requires UI settings is configurable and implements the ConfigurablePlugin
interface. This ensures that PingFederate loads the plugin instance with the correct configuration settings.
All plugin types implement the ConfigurablePlugin
interface and must define the following within the ConfigurablePlugin
interface to enable configuration loading.
void configure(Configuration configuration)
During processing of a configurable plugin instance, PingFederate calls the ConfigurablePlugin.configure()
method and passes a Configuration
object. The Configuration
object provides the plugin adapter instance configuration set by an administrator in the PingFederate UI.
The SpAuthnAdapterExample.java
sample provided with the SDK shows how to use this method to initialize an adapter instance from a saved configuration. After your implementation loads the configuration values, the plugin instance can use them in other method calls.
Describable plugin
Any plugin that requires configuration windows in the PingFederate administrative console is a describable plugin. Most plugins implement the DescribablePlugin
interface to ensure that PingFederate renders the correct UI components based on the returned PluginDescriptor
.
Adapter and custom data source plugins are special cases and do not implement the DescribablePlugin
interface. However, they still return a plugin descriptor (AuthnAdapterDescriptor
and SourceDescriptor
) and are still describable plugins.
All describable plugins must define a UI descriptor. Use one of the following methods to implement a UI descriptor, depending on the type of plugin:
-
For plugins using the
DescribablePlugin
interfacePluginDescriptor getPluginDescriptor()
-
For adapter plugins
AuthnAdapterDescriptor getAdapterDescriptor()
-
For custom data source plugins
SourceDescriptor getSourceDescriptor()
Describable plugins can return a subclass of PluginDescriptor
, so the return type might differ between plugin implementations. Your plugin implementation populates PluginDescriptor
with FieldDescriptors
, FieldValidators
, and Actions
and is presented as a set of UI components in the PingFederate administrative console.
Some plugin types offer concrete descriptor implementations for developers. The Javadocs and examples provided with the SDK show which descriptor classes are available for each plugin type. The examples also show you how to use |