You may use the PingFederate SDK to implement a custom solution for grant storage.

  1. Implement the AccessGrantManager interface.
    For more information, refer to the Javadoc for the AccessGrantManager interface, the SampleAccessGrant.java file for a sample implementation, and the SDK developer's guide for build and deployment information.
    Tip:

    The Javadoc for PingFederate and the sample implementation are located under the <pf_install>/pingfederate/sdk directory.

  2. Edit the <pf_install>/pingfederate/server/default/conf/META-INF/hivemodule.xml file.
    1. Locate the AccessGrantManager service point:
      <!-- Service for storage of access grants -->
      <service-point id="AccessGrantManager" interface="com.pingidentity.sdk.accessgrant.AccessGrantManager">
           <create-instance class="org.sourceid.oauth20.token.AccessGrantManagerJdbcImpl"/>
      </service-point>
    2. Update the class attribute value to the name of your class.
    3. Save the file.
    Note:

    For a clustered environment, you must edit the hivemodule.xml file on each node manually as cluster replication cannot replicate this change to other nodes.

  3. Deploy the required program files of your custom implementation to all PingFederate servers.
  4. Start or restart the PingFederate service.
    Note:

    For a clustered PingFederate environment, replicate this new configuration to other engine nodes on the System > Cluster Management screen; then start or restart the PingFederate service on each engine node to activate the change.