Any plugin that requires configuration screens in the PingFederate administrative console is considered 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 a special case and do not implement the DescribablePlugin interface. However, they still return a plugin descriptor (AuthnAdapterDescriptor and SourceDescriptor respectively) and are still considered 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 DescribablePlugin:
    PluginDescriptor getPluginDescriptor()
  • For adapter plugins:
    AuthnAdapterDescriptor getAdapterDescriptor()
  • For custom data source plugins:
    SourceDescriptor getSourceDescriptor()

In many cases, describable plugins return a subclass of PluginDescriptor, so the return type of the plugin descriptor getters might be slightly different among 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 directly to define your plugin descriptor.