You may use the PingFederate SDK to implement a custom solution for client storage.
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, you may 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.
ClientStorageManagerV2interface.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, refer to the Javadoc for the
ClientStorageManagerV2interface, the SampleClientStorage.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.
<!-- Service for storing OAuth client configuration. --> <service-point id="ClientManager" interface="org.sourceid.oauth20.domain.ClientManager"> <invoke-factory> <!-- Supported classes are org.sourceid.oauth20.domain.ClientManagerXmlFileImpl ... org.sourceid.oauth20.domain.ClientManagerJdbcImpl ... org.sourceid.oauth20.domain.ClientManagerLdapImpl ... org.sourceid.oauth20.domain.ClientManagerGenericImpl ... --> <construct class="org.sourceid.oauth20.domain.ClientManagerXmlFileImpl"/> </invoke-factory> </service-point>
Update the class attribute value with the name of the
class implementing the
- Save the file.
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.
- Locate the
Start or restart the PingFederate service.
For a clustered PingFederate environment, replicate this new configuration to other engine nodes on the ; then start or restart the PingFederate service on each engine node to activate the change. screen