com.ibm.itim.remoteservices.provider
Interface ServiceProvider


public interface ServiceProvider

Interface for a provider to communicate with a remote resource.

Communication with adapter based provisioning will implement this and proxy to adapter code using one of the supported protocol modules. These include DAML, FTP and DSMLv2 (used by ITDI).

Alternatively, agentless communication with a remote resource may be done by implementing this interface with a class that can communicate directly with that resource.

Classes implementing this interface will be called by the TIM framework in a TIM installation when an account action for add, modify, delete, suspend, restore, changePassword, search, or test are triggered. Implementations may be thought of as adaptor classes adapting the native data representation into something that can be understood by TIM. For example, data from sources such as LDAP directories, databases, XML files, etc should be translated to the types understood by TIM.

The ServiceProvider implementation should be instantiated by a ServiceProviderFactory. The ServiceProviderFactory to use will be found from the service type resource definition.

See Also:
ServiceProviderFactory

Method Summary
 RequestStatus add(java.lang.String objectClass, AttributeValues attributeValues, java.lang.String requestID)
          Adds an entity to the remote resource with the given attributes
 RequestStatus changePassword(java.lang.String entityDN, byte[] newPassword, java.lang.String requestID)
          Change password for an entity on the remote resource.
 RequestStatus delete(java.lang.String entityDN, java.lang.String requestID)
          Delete an entity on the remote resource.
 ServiceProviderInformation getServiceProviderInfo()
          Gets the ServiceProviderInfo for this type of ServiceProvider
 RequestStatus modify(java.lang.String entityDN, AttributeChanges attributeChanges, java.lang.String requestID)
          Modify an entity on the remote resource with the given attributes.
 RequestStatus restore(java.lang.String entityDN, byte[] newPassword, java.lang.String requestID)
          Restore an entity on the remote resource.
 SearchResults search(SearchCriteria searchCriteria, java.lang.String requestID)
          Search and return a collection of entities on the remote resource.
 RequestStatus suspend(java.lang.String entityDN, java.lang.String requestID)
          Suspend an entity on the remote resource.
 boolean test()
          Test a connection to the remote resource
 

Method Detail

add

public RequestStatus add(java.lang.String objectClass,
                         AttributeValues attributeValues,
                         java.lang.String requestID)
Adds an entity to the remote resource with the given attributes

Parameters:
attributeValues - The attribute values to be added with the entity.
objectClass - The class of object to add
requestID - The id of the request
Returns:
The status of the request

changePassword

public RequestStatus changePassword(java.lang.String entityDN,
                                    byte[] newPassword,
                                    java.lang.String requestID)
Change password for an entity on the remote resource. The format of the password (ie plain text, hashed, etc is implementation dependend).

Parameters:
entityDN - The identity of the entity in the local data store
newPassword - The new password
requestID - The id of the request
Returns:
The status of the request

delete

public RequestStatus delete(java.lang.String entityDN,
                            java.lang.String requestID)
Delete an entity on the remote resource.

Parameters:
entityDN - The identity of the entity in the local data store
requestID - The id of the request
Returns:
The status of the request

getServiceProviderInfo

public ServiceProviderInformation getServiceProviderInfo()
Gets the ServiceProviderInfo for this type of ServiceProvider

Returns:
ServiceProviderInformation Encapsulating the service provider parameters

modify

public RequestStatus modify(java.lang.String entityDN,
                            AttributeChanges attributeChanges,
                            java.lang.String requestID)
Modify an entity on the remote resource with the given attributes. If no operation is specified it will be assumed to be replace.

Parameters:
entityDN - The identity of the entity in the local data store
attributeChanges - The attribute values and operations to be changed
requestID - The id of the request
Returns:
The status of the request

suspend

public RequestStatus suspend(java.lang.String entityDN,
                             java.lang.String requestID)
Suspend an entity on the remote resource.

Parameters:
entityDN - The identity of the entity in the local data store
requestID - The id of the request
Returns:
The status of the request

restore

public RequestStatus restore(java.lang.String entityDN,
                             byte[] newPassword,
                             java.lang.String requestID)
Restore an entity on the remote resource.

Parameters:
entityDN - The identity of the entity in the local data store
newPassword - The password given to the restored entity
requestID - The id of the request
Returns:
The status of the request

search

public SearchResults search(SearchCriteria searchCriteria,
                            java.lang.String requestID)
Search and return a collection of entities on the remote resource. If the search criteria is empty or if the service provider does not implement search based on a filter or base, then all the entities on the remote resource should be returned.

Parameters:
searchCriteria - entities returned should matching this criteria
requestID - The id of the request
Returns:
the set of accounts matching the search criteria

test

public boolean test()
             throws RemoteServicesException
Test a connection to the remote resource

Returns:
The status of the test
Throws:
RemoteServicesException - If there was a problem communicating with the resource


IBM Tivoli Identity Manager 4.6
© Copyright International Business Machines Corporation 2005. All rights reserved. US Government Users Restricted Rights Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.