com.ibm.itim.remoteservices.provider

Interface ServiceProvider

  • All Known Subinterfaces:
    ServiceProviderV2


    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 Detail

      • add

        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

        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

        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

        ServiceProviderInformation getServiceProviderInfo()
        Gets the ServiceProviderInfo for this type of ServiceProvider
        Returns:
        ServiceProviderInformation Encapsulating the service provider parameters
      • modify

        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

        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

        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

        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