com.ibm.itim.remoteservices.provider

Interface UnsolicitedEventProcessor

  • All Superinterfaces:
    SchemaLookup


    public interface UnsolicitedEventProcessor
    extends SchemaLookup

    Interface for a class to process unsolicited events, including add events, modify events, suspend, restore, and delete events. The primary purpose of this interface is to allow synchronization between external resources and TIM to be initiated from outside of TIM. In other words, data change events on managed resources can be propogated to TIM using this interface.

    This class should be used when implementing a new protocol that listens for events on a managed resource. After the event occurs this class should be called to inform TIM to update the TIM data store.

    Clients of this interface will typically be server implementations of protocols. However, clients listening for events within the same process as the server are also possible.

    Entries are identified in the method signatures by the entryDN parameter. An example of this form for an account entity is 'eruid=jdoe'.

    Other processing, before addition to the data store will be also be done. This will include checking of provisioning policies for accounts. For person entries the processing will include person placement rules, lookup of supervisor by name, and lookup of role by name.

    The particular kind of processing done on the entry will be determined by the ercategory defined in the service instance. If there is no value for this attribute then internally defined defaults for Person and Account entries will be used.

    Information for exceptions during processing of events will be encapsulated in the returned RequestStatus objects.

    Clients should ensure data consistency when there is a possibility of concurrent events between a ServiceProvider implementation and unsolicited events.

    The service attribute erCategory has special meaning to the API implementation. It is used to determine the factory for processing of data. Supported values of erCategory at present are 'Account' and 'Person'.

    • Method Detail

      • processAddRequest

        RequestStatus processAddRequest(Service service,
                                        java.lang.String entryDN,
                                        java.util.Collection objectClasses,
                                        AttributeValues attributeValues)
        Process an add request sent from a remote service in a unsolicited notification event. The service instance will be for a specific entityCategory, which is used to find the appropriate data services factory to create the entry in the TIM data store.
        Parameters:
        service - The service that the entry is to be added to
        entryDN - The distinguished name of the entry with respect to the managed resource
        objectClasses - the object classes to use to create the new entity
        attributeValues - The attribute values to be added with the entity.
        Returns:
        The status of the request
      • processDeleteRequest

        RequestStatus processDeleteRequest(Service service,
                                           java.lang.String entryDN)
        Process a delete request sent from a remote service in a unsolicited notification event.
        Parameters:
        service - The service that the entry is to be processed for
        entryDN - The distinguished name of the entry with respect to the managed resource
        Returns:
        The status of the request
      • processModifyRequest

        RequestStatus processModifyRequest(Service service,
                                           java.lang.String entryDN,
                                           AttributeChanges changes)
        Process a modify request sent from a remote service in a unsolicited notification event.
        Parameters:
        service - The service that the entry is to be processed for
        entryDN - The distinguished name of the entry with respect to the managed resource
        changes - list of modifications to process
        Returns:
        The status of the request
      • processRestoreRequest

        RequestStatus processRestoreRequest(Service service,
                                            java.lang.String entryDN)
        Process a restore request sent from a remote service in a unsolicited notification event. Not all kinds of entities may support this operation.
        Parameters:
        service - The service that the entry is to be processed for
        entryDN - The distinguished name of the entry with respect to the managed resource
        Returns:
        The status of the request
      • processSuspendRequest

        RequestStatus processSuspendRequest(Service service,
                                            java.lang.String entryDN)
        Process a suspend request sent from a remote service in a unsolicited notification event. Not all kinds of entities may support this operation.
        Parameters:
        service - The service that the entry is to be processed for
        entryDN - The distinguished name of the entry with respect to the managed resource
        Returns:
        The status of the request