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.
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
All plugin types implement the
ConfigurablePlugin interface and must
define the following within the
ConfigurablePlugin interface to enable
void configure(Configuration configuration)
During processing of a configurable plugin instance, PingFederate calls
ConfigurablePlugin.configure() method and passes a
Configuration object. The Configuration
object provides the plugin adapter instance configuration set by an administrator in the
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.
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
Adapter and custom data source plugins are special cases and do not implement the
DescribablePlugin interface. However, they still return a plugin
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
- For adapter plugins
- For custom data source plugins
Describable plugins can return a subclass of
PluginDescriptor, so the
return type might differ between plugin implementations. Your plugin implementation
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
Actions to define your plugin descriptor.