Using custom solutions for client storage
Use the PingFederate SDK to implement a custom solution for client storage.
About this task
PingFederate does not migrate client records from one storage medium to another. You must recreate your clients after updating the client storage configuration. If you need only a few clients, you can recreate them using the administrative console. If you need a large number of clients, use the administrative API to retrieve your client records before updating the client storage. Update the client storage configuration and recreate your clients using the administrative API based on the retrieved records. For more information, see PingFederate administrative API. |
Steps
-
Implement the
ClientStorageManagerV2
interface.This interface includes a
search()
method, allowing developers to provide efficient implementations of the pagination and search functions exposed in the administrative console.For more information, see the Javadoc for the
ClientStorageManagerV2
interface, theSampleClientStorage.java
file for a sample implementation, and the SDK Developer’s Guide for build and deployment information.The Javadoc for PingFederate and the sample implementation are in the
<pf_install>/pingfederate/sdk
directory. -
Edit the
<pf_install>/pingfederate/server/default/conf/service-points.conf
file.-
Go to the
# Service for storing OAuth client configuration
section.# Service for storing OAuth client configuration. # Supported classes are # org.sourceid.oauth20.domain.ClientManagerXmlFileImpl : Use this service-point for an XML implementation. # org.sourceid.oauth20.domain.ClientManagerJdbcImpl : Use this service-point for a Jdbc implementation. # org.sourceid.oauth20.domain.ClientManagerLdapImpl : Use this service-point for an LDAP implementation. # org.sourceid.oauth20.domain.ClientManagerDynamoDBImpl : Use this service-point for a DynamoDB implementation # org.sourceid.oauth20.domain.ClientManagerGenericImpl : Use this service-point if you have specified a custom ClientStorageManager implementation above. client.manager=org.sourceid.oauth20.domain.ClientManagerXmlFileImpl
-
Change the value of the
client.manager
service to the name of the class implementing theClientStorageManagerV2
interface.
For a clustered PingFederate environment, you must edit the
service-points.conf
file on each node manually because cluster replication can’t replicate this change to other nodes. -
-
Start or restart PingFederate.
include:::partial$pf_rc_notes.adoc[tags=pf_ph_replicateConfiguration] Start or restart the PingFederate service on each engine node to activate the change.