PingFederate Server

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

  1. Add a new directory called PF-INF into your project. This directory must be at the root of your .jar file, similar to META-INF.

  2. In the PF-INF directory, add an appropriate text file for each type of plugin you created:

    Plugin type Interface Descriptor file name

    Authentication Selector

    AuthenticationSelector

    authentication-selectors

    Authorization Detail Processor

    AuthorizationDetailProcessor

    authorization-detail-processors

    Captcha Provider

    SecretManager

    captcha-providers

    Dynamic Client Registration

    DynamicClientRegistrationPlugin

    dynamic-client-registration

    Identity Store Provisioner

    IdentityStoreProvisioner

    identity-store-provisioners

    IdP Authentication Adapter

    IdpAuthenticationAdapterV2

    idp-adapters

    Notification Publisher

    NotificationPublisher

    notification-sender

    Out-of-Band Auth Plugin

    OOBAuthPlugin

    oob-auth-plugins

    Password Credential Validator

    PasswordCredentialValidator

    password-credential-validators

    Secret Manager

    SecretManager

    secret-manager

    SP Authentication Adapter

    SpAuthenticationAdapter

    sp-adapters

    Token Generator

    TokeGenerator

    token-generators

    Token Processor

    TokenProcessor

    token-processors

  3. 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.

  4. To create a .jar, archive the compiled class files along with the deployment descriptors using your build tool. The deployment descriptors must be in the PF-INF directory, located at the root of the .jar file.

  5. To deploy your plugin, copy the .jar file and any third-party .jar files into the <pf_install>/pingfederate/server/default/deploy directory of the PingFederate installation.