com.ibm.itim.remoteservices.provider

Class ServiceProviderInformation

  • java.lang.Object
    • com.ibm.itim.remoteservices.provider.ServiceProviderInformation
  • All Implemented Interfaces:
    java.io.Serializable


    public class ServiceProviderInformation
    extends java.lang.Object
    implements java.io.Serializable
    Encapsulates service provider configuration parameters, including properties read from resource definition files. No properties are required, however, several have special meaning in the enrole system. In particular, PROTOCOL_MODE Indicates the mode that the service provider operates in STORE_ACCOUNT_PASSWORD Indicates that the service provider stores the password and uses it for suspending and restoring entities FILTERING_NOT_SUPPORTED indicates whether filtered searches are supported
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor and Description
      ServiceProviderInformation(java.lang.String serviceProfileName, java.util.Properties properties)
      Creates new ServiceProviderInfo object.
      ServiceProviderInformation(java.lang.String serviceProfileName, java.util.Properties properties, java.util.Map<java.lang.String,ServiceProviderInfoOperation> operationDescriptors, java.util.HashMap<java.lang.String,java.lang.String> complexHandler, java.util.Collection<java.lang.String> complexAttrs, java.util.Set<java.lang.String> multiValuedAttrNames, java.lang.String serviceProviderFactory)
      Creates new ServiceProviderInfo object.
      ServiceProviderInformation(java.lang.String serviceProfileName, java.util.Properties properties, java.util.Map<java.lang.String,ServiceProviderInfoOperation> operationDescriptors, java.lang.String complexHandler, java.util.Collection<java.lang.String> complexAttrs, java.util.Set<java.lang.String> multiValuedAttrNames, java.lang.String serviceProviderFactory)
      Creates new ServiceProviderInfo object.
      ServiceProviderInformation(java.lang.String serviceProfileName, java.util.Properties properties, java.lang.String serviceProviderFactory)
      Creates new ServiceProviderInfo object.
    • Field Detail

      • OPERATION_MODIFY

        public static final java.lang.String OPERATION_MODIFY
        See Also:
        Constant Field Values
      • OPERATION_DELETE

        public static final java.lang.String OPERATION_DELETE
        See Also:
        Constant Field Values
      • OPERATION_SUSPEND

        public static final java.lang.String OPERATION_SUSPEND
        See Also:
        Constant Field Values
      • OPERATION_RESTORE

        public static final java.lang.String OPERATION_RESTORE
        See Also:
        Constant Field Values
      • OPERATION_CHANGE_PASSWORD

        public static final java.lang.String OPERATION_CHANGE_PASSWORD
        See Also:
        Constant Field Values
      • OPERATION_SEARCH

        public static final java.lang.String OPERATION_SEARCH
        See Also:
        Constant Field Values
      • OPERATION_COMPARE

        public static final java.lang.String OPERATION_COMPARE
        See Also:
        Constant Field Values
      • SYNCHRONOUS

        public static final java.lang.String SYNCHRONOUS
        Name of a property indicating that the service provider is synchronous. Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.SYNCHRONOUS_MODE"
        See Also:
        Constant Field Values
      • ASYNCHRONOUS

        public static final java.lang.String ASYNCHRONOUS
        Name of a property indicating that the service provider is asynchronous. Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.ASYNCHRONOUS_MODE"
        See Also:
        Constant Field Values
      • STORE_ACCOUNT_PASSWORD

        public static final java.lang.String STORE_ACCOUNT_PASSWORD
        Name for a property indicating that the service provider stores the password and uses it for suspending and restoring entities. If present indicates that the password is stored and used suspend and restore operations. Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.STORE_ACCOUNT_PASSWORD"
        See Also:
        Constant Field Values
      • PASSWORD_NOT_ALLOWED_ON_RESTORE

        public static final java.lang.String PASSWORD_NOT_ALLOWED_ON_RESTORE
        Name for a property indicating that the password is NOT allowed when the account is restored.
        See Also:
        Constant Field Values
      • PASSWORD_NOT_REQUIRED_ON_RESTORE

        public static final java.lang.String PASSWORD_NOT_REQUIRED_ON_RESTORE
        Name for a property indicating whether the password is required for restoring entities.

        If method isPasswordAllowedOnRestore returns FALSE, then it will alway be assumed to be TRUE (password not required).

        Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.PASSWORD_NOT_REQUIRED_ON_RESTORE"

        See Also:
        Constant Field Values
      • FILTERING_NOT_SUPPORTED

        public static final java.lang.String FILTERING_NOT_SUPPORTED
        Name for a Property indicates whether filtered searches are supported. If present indicates that filter is not supported. Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.FILTERING_NOT_SUPPORTED"
        See Also:
        Constant Field Values
      • DELETE_ATTRIBUTES_ON_MODIFY

        public static final java.lang.String DELETE_ATTRIBUTES_ON_MODIFY
        Flag indicating whether to delete existing attributes that are not contained in the new reconciliation entry
        See Also:
        Constant Field Values
      • SERVICE_PROVIDER_FACTORY

        public static final java.lang.String SERVICE_PROVIDER_FACTORY
        Deprecated. Use method getServiceProviderFactory().
        Name for a Property indicates the class name for the ServiceProviderFactory to use for creating the ServiceProvider. Actual text used in configuration files should be "com.ibm.itim.remoteservices.ResourceProperties.SERVICE_PROVIDER_FACTORY"
        See Also:
        Constant Field Values
    • Constructor Detail

      • ServiceProviderInformation

        public ServiceProviderInformation(java.lang.String serviceProfileName,
                                          java.util.Properties properties)
        Creates new ServiceProviderInfo object. A default service provider factory for DAML and FTP will be assumed.
        Parameters:
        serviceProfileName - The name of the service profile. serviceProfileName cannot be null, or the empty string.
        properties - The Properties read from the resource definition file.
      • ServiceProviderInformation

        public ServiceProviderInformation(java.lang.String serviceProfileName,
                                          java.util.Properties properties,
                                          java.lang.String serviceProviderFactory)
        Creates new ServiceProviderInfo object.
        Parameters:
        serviceProfileName - The name of the service profile. serviceProfileName cannot be null or the empty string.
        properties - The Properties read from the resource definition file.
        serviceProviderFactory - Name of the Java class to instantiate the ServiceProvider implementation. serviceProviderFactory cannot be null or the empty string.
      • ServiceProviderInformation

        public ServiceProviderInformation(java.lang.String serviceProfileName,
                                          java.util.Properties properties,
                                          java.util.Map<java.lang.String,ServiceProviderInfoOperation> operationDescriptors,
                                          java.util.HashMap<java.lang.String,java.lang.String> complexHandler,
                                          java.util.Collection<java.lang.String> complexAttrs,
                                          java.util.Set<java.lang.String> multiValuedAttrNames,
                                          java.lang.String serviceProviderFactory)
        Creates new ServiceProviderInfo object.
        Parameters:
        serviceProfileName - The name of the service profile. serviceProfileName cannot be null or the empty string.
        properties - The Properties read from the resource definition file.
        operationDescriptors - Map of operation descriptors, with key = operation name, value = ServiceProviderInfoOperation object
        complexHandler - Map containing class to handle complex attributes and generic handler
        complexAttrs - Collection of String complex attribute names
        multiValuedAttrNames - Set of multi-valued attribute names (lower case)
        serviceProviderFactory - Name of the Java class to instantiate the ServiceProvider implementation. serviceProviderFactory cannot be null or the empty string.
      • ServiceProviderInformation

        public ServiceProviderInformation(java.lang.String serviceProfileName,
                                          java.util.Properties properties,
                                          java.util.Map<java.lang.String,ServiceProviderInfoOperation> operationDescriptors,
                                          java.lang.String complexHandler,
                                          java.util.Collection<java.lang.String> complexAttrs,
                                          java.util.Set<java.lang.String> multiValuedAttrNames,
                                          java.lang.String serviceProviderFactory)
        Creates new ServiceProviderInfo object.
        Parameters:
        serviceProfileName - The name of the service profile. serviceProfileName cannot be null or the empty string.
        properties - The Properties read from the resource definition file.
        operationDescriptors - Map of operation descriptors, with key = operation name, value = ServiceProviderInfoOperation object
        complexHandler - Name of class to handle complex attributes
        complexAttrs - Collection of String complex attribute names
        multiValuedAttrNames - Set of multi-valued attribute names (lower case)
        serviceProviderFactory - Name of the Java class to instantiate the ServiceProvider implementation. serviceProviderFactory cannot be null or the empty string.
    • Method Detail

      • getServiceProfileName

        public java.lang.String getServiceProfileName()
        Gets the name of the service profile
        Returns:
        The name of the service profile
      • getProperties

        public java.util.Properties getProperties()
        Gets the protocol and behavior properties for the service type
        Returns:
        The properties specific the service type, and not null.
      • getSupportedAttributeNames

        public java.lang.String[] getSupportedAttributeNames()
      • setSupportedAttributeNames

        public void setSupportedAttributeNames(java.lang.String[] supportedAttributeNames)
      • isMultiValuedAttribute

        public boolean isMultiValuedAttribute(java.lang.String attrName)
        return whether specified attribute name is one of the multi-valued account attributes
        Parameters:
        attrName - attribute name to check
        Returns:
        true if attribute name is one of the multi-valued account attributes
      • getCurrentMode

        public java.lang.String getCurrentMode()
        Gets the current communication mode. Possible values are ResourceProperties.SYNCHRONOUS or ResourceProperties.ASYNCHRONOUS.
        Returns:
        The currently supported communication mode
      • setCurrentMode

        public void setCurrentMode(java.lang.String currentMode)
        Sets the current communication mode. Possible values are ResourceProperties.SYNCHRONOUS or ResourceProperties.ASYNCHRONOUS.
        Parameters:
        currentMode - The currently supported communication mode. One of:
        • ResourceProperties.SYNCHRONOUS
        • ResourceProperties.ASYNCHRONOUS
      • getSupportedModes

        public java.lang.String[] getSupportedModes()
        Gets the modes that are supported by this service. Possible contents are ResourceProperties.SYNCHRONOUS and ResourceProperties.ASYNCHRONOUS.
        Returns:
        A non-empty array of supported modes
      • getServiceProviderFactory

        public java.lang.String getServiceProviderFactory()
        Returns the service provider factory for the service profile: the fully qualified name of the java class.
        Returns:
        service provider factory service.
      • isStoreAccountPassword

        public boolean isStoreAccountPassword()
        Deprecated. We not longer ever store the password locally, so the flag should not be used.
        Property indicates that the account password should be stored and is used for restoring accounts.

        This property used to be used to indicate whether we needed to save a copy of the password in the local LDAP directory to be used for restoring accounts.

        Returns:
        True if change password is stored in local directory
      • isPasswordAllowedOnRestore

        public boolean isPasswordAllowedOnRestore()
        Property indicates that the account password MAY be send when restoring an account. Note: null value or "TRUE" means NOT allowed.

        Note: this method is duplicated in class com.ibm.itim.dataservices.model.ServiceProfile

        Returns:
        True if password can be sent for restoring accounts
      • isPasswordRequiredOnRestore

        public boolean isPasswordRequiredOnRestore()
        Property indicates that the account password is required for restoring accounts. Note: null value or "TRUE" means NOT required.

        Note: this logic is duplicated in class com.ibm.itim.dataservices.model.ServiceProfile

        Returns:
        True if password is required for restoring accounts
      • isDeleteAttributesOnModify

        public boolean isDeleteAttributesOnModify()
        Property indicating that missing attributes should be deleted on a modify. Note: null value means FALSE.
        Returns:
        True if omitted attributes should be deleted
      • isFilteringSupported

        public boolean isFilteringSupported()
        Property indicates whether filtered searches are supported
        Returns:
        True if filtered searches are supported
      • getOperationDescriptors

        public java.util.Map<java.lang.String,ServiceProviderInfoOperation> getOperationDescriptors()
        get the map of operation descriptors,
        Returns:
        Map of operation descriptors, with key = operation name, value = ServiceProviderInfoOperation object
      • getOperationDescriptor

        public ServiceProviderInfoOperation getOperationDescriptor(java.lang.String operationName)
        get the specified operation descriptor.
        Parameters:
        operationName - operation name
        Returns:
        operation descriptor for specified operation (may be null if not defined)
      • getIsRequiredAccountAttribute

        public boolean getIsRequiredAccountAttribute(java.lang.String operationName,
                                                     java.lang.String attributeName)
        return whether specified attribute is required for specified operation.
        Parameters:
        operationName - operation name
        attributeName - name of an account attribute
        Returns:
        true if specified attribute is required for specified operation.
      • getIsRequiredServiceAttribute

        public boolean getIsRequiredServiceAttribute(java.lang.String operationName,
                                                     java.lang.String attributeName)
        return whether specified attribute is required for specified operation.
        Parameters:
        operationName - operation name
        attributeName - name of a service attribute
        Returns:
        true if specified attribute is required for specified operation.
      • getIsSendOnlyAttribute

        public boolean getIsSendOnlyAttribute(java.lang.String operationName,
                                              java.lang.String attributeName)
        return whether specified attribute is a send-only attribute for specified operation.
        Parameters:
        operationName - operation name
        attributeName - name of an account or service attribute
        Returns:
        true if specified attribute is send-only for specified operation.
      • getIsReplaceMultiValueAttribute

        public boolean getIsReplaceMultiValueAttribute(java.lang.String operationName,
                                                       java.lang.String attributeName)
        return whether specified attribute is replace-multi-value for specified operation.
        Parameters:
        operationName - operation name
        attributeName - name of an account or service attribute
        Returns:
        true if specified attribute is replace-multi-value for specified operation.
      • getComplexAttributeHandlerClassMapName

        public java.util.HashMap<java.lang.String,java.lang.String> getComplexAttributeHandlerClassMapName()
        Return the name of the Complex Attribute Handler object class
        Returns:
        the name of the Complex Attribute Handler object class / null if none defined
      • getComplexAttributeHandlerClassName

        public java.lang.String getComplexAttributeHandlerClassName()
        Return the name of the Complex Attribute Handler object class
        Returns:
        the name of the Complex Attribute Handler object class / null if none defined
      • getComplexAttributeNames

        public java.util.Collection<java.lang.String> getComplexAttributeNames()
        Return the Collection of String complex attribute names
        Returns:
        Collection of String complex attribute names
      • isComplexAttributeName

        public boolean isComplexAttributeName(java.lang.String attrName)
        Return whether the specified attribute is a complex attribute (to be processed by the complex attribute handler class).
        Parameters:
        attrName - attribute name to check
        Returns:
        true if the specified attribute is a complex attribute
      • toString

        public java.lang.String toString()
        Format all of the parameters into a string
        Overrides:
        toString in class java.lang.Object
        Returns:
        String indicating the serviceProfileName and properties.