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
FieldDescriptors
, FieldValidators
, and
Actions
to define your plugin descriptor.