com.pingidentity.sources
Interface CustomDataSourceDriver

All Superinterfaces:
ConfigurableDriver

public interface CustomDataSourceDriver
extends ConfigurableDriver

This interface provides the methods necessary to successfully create a CustomDataSourceDriver. Classes derived from this interface can be used to access non-standard or unique data stores. Default implementation of JDBC and LDAP data stores exist. This interface provides access to all other types of data stores.

This interface defines methods to test the connection to the unique data store testConnection()}, perform the actual retrieval of information retrieveValues(Collection, SimpleFieldList) and provide a list of availabled fields to the user getAvailableFields().

A companion descriptor class CustomDataSourceDriverDescriptor has been created to allow the user to set fields that can be used to filter data during the retrieveValues(Collection, SimpleFieldList) method call. To utilize the CustomDataSourceDriverDescriptor class, send an instance of this class in the ConfigurableDriver.getSourceDescriptor() method call. If the default SourceDescriptor class is used, the user will not be provided the ability to filter result sets.

See Also:
SimpleFieldList

Method Summary
 java.util.List<java.lang.String> getAvailableFields()
          PingFederate will take the list returned from this method, and display the field names as individual checkbox items.
 java.util.Map<java.lang.String,java.lang.Object> retrieveValues(java.util.Collection<java.lang.String> attributeNamesToFill, SimpleFieldList filterConfiguration)
          This method is called by PingFederate when a connection (either IdP or SP) needs to retrieve information from the specified driver.
 boolean testConnection()
          This method is used to determine whether the connection managed by a specific driver instance is available.
 
Methods inherited from interface com.pingidentity.sources.ConfigurableDriver
configure, getSourceDescriptor
 

Method Detail

testConnection

boolean testConnection()
This method is used to determine whether the connection managed by a specific driver instance is available. This method is used by the PingFederate UI prior to rendering to determine whether the driver information should be editable.

Returns:
true if the connection is available

retrieveValues

java.util.Map<java.lang.String,java.lang.Object> retrieveValues(java.util.Collection<java.lang.String> attributeNamesToFill,
                                                                SimpleFieldList filterConfiguration)
This method is called by PingFederate when a connection (either IdP or SP) needs to retrieve information from the specified driver. This method is expected to return a map containing the resulting values.

Parameters:
attributeNamesToFill - An array of names to retrieve values for. In the JDBC paradigm, these would be column names.
filterConfiguration - A SimpleFieldList list of filter criteria to use when retrieve values. May be null if no filter configuration is provided. These fields are described by the CustomDataSourceDriverDescriptor class.
Returns:
A map, keyed by values from the attributeNamesToFill array, that contains values retrieved by the custom driver. If no data matches the filter criteria, then an empty Map should be returned. Null should not be returned.

getAvailableFields

java.util.List<java.lang.String> getAvailableFields()
PingFederate will take the list returned from this method, and display the field names as individual checkbox items. The user can select those fields for which they want values, and then map those selected fieldnames against adapter contracts. During execution, the names that the user has mapped will be sent to the retrieveValues(Collection, SimpleFieldList) method.

Returns:
A list of available fields to display to the user.


Copyright 2007 Ping Identity Corp. All rights reserved.