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

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.

  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 PF-INF, add an appropriate text file for each type of plugin you created:
    Plugin type File name
    IdP Adapter idp-authn-adapters
    SP Adapter sp-authn-adapters
    Custom Data Source custom-drivers
    Token Processor token-processors
    Token Generator token-generators
    Authentication Selector authentication-selectors
    Password Credential Validator password-credential-validators
    Identity Store Provisioner identity-store-provisioners
    CIBA Authenticator oob-auth-plugins
    Notification Publisher notification-sender
  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.