Building and deploying manually
Use a build utility to add directories, create deployment descriptors, and create a .jarfile to build and deploy your plugins with PingFederate.
Before you begin
To compile your project, you must have the following directories on your classpath:
-
<pf_install>/pingfederate/server/default/lib -
<pf_install>/pingfederate/lib -
<pf_install>/pingfederate/sdk/lib -
<pf_install>/pingfederate/sdk/plugin-src/<subproject-name>/lib
About this task
To build your project with another build utility, you must create the deployment descriptors for each of your plugins. The deployment descriptor files allow PingFederate to discover your plugins. Once this is complete, use the build tool to create a .jar file and deploy it within the appropriate directory.
The deployment descriptor is a static file that PingFederate reads from your jar that specifies two things:
-
The type of plugins available for this jar.
-
The implementation class names to load as an available plugin.
The descriptor must be located at src/main/resources/PF-INF/<descriptor-name>.
The descriptor file contains only the fully-qualified name of your implementing class. For example:
com.pingidentity.password.credential.validator.SamplePasswordCredentialValidator
Steps
-
Add a new directory called
PF-INFinto your project. This directory must be at the root of your.jarfile, similar toMETA-INF. -
In the
PF-INFdirectory, add an appropriate text file for each type of plugin you created:Plugin type Interface Descriptor file name Authentication Selector
AuthenticationSelectorauthentication-selectorsAuthorization Detail Processor
AuthorizationDetailProcessorauthorization-detail-processorsCaptcha Provider
SecretManagercaptcha-providersDynamic Client Registration
DynamicClientRegistrationPlugindynamic-client-registrationIdentity Store Provisioner
IdentityStoreProvisioneridentity-store-provisionersIdP Authentication Adapter
IdpAuthenticationAdapterV2idp-adaptersNotification Publisher
NotificationPublishernotification-senderOut-of-Band Auth Plugin
OOBAuthPluginoob-auth-pluginsPassword Credential Validator
PasswordCredentialValidatorpassword-credential-validatorsSecret Manager
SecretManagersecret-managerSP Authentication Adapter
SpAuthenticationAdaptersp-adaptersToken Generator
TokeGeneratortoken-generatorsToken Processor
TokenProcessortoken-processors -
In each text file added, specify the fully-qualified class name of each plugin that implements the corresponding plugin interface. Place each class name on a separate line.
-
To create a
.jar, archive the compiled class files along with the deployment descriptors using your build tool. The deployment descriptors must be in thePF-INFdirectory, located at the root of the.jarfile. -
To deploy your plugin, copy the
.jarfile and any third-party.jarfiles into the<pf_install>/pingfederate/server/default/deploydirectory of the PingFederate installation.