com.ibm.itim.remoteservices.provider
Class ServiceProviderInformation

java.lang.Object
  extended by 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

Field Summary
static java.lang.String ASYNCHRONOUS
          Name of a property indicating that the service provider is asynchronous.
static java.lang.String DELETE_ATTRIBUTES_ON_MODIFY
          Flag indicating whether to delete existing attributes that are not contained in the new reconciliation entry
static java.lang.String FILTERING_NOT_SUPPORTED
          Name for a Property indicates whether filtered searches are supported.
static java.lang.String OPERATION_ADD
           
static java.lang.String OPERATION_CHANGE_PASSWORD
           
static java.lang.String OPERATION_COMPARE
           
static java.lang.String OPERATION_DELETE
           
static java.lang.String OPERATION_MODIFY
           
static java.lang.String OPERATION_RESTORE
           
static java.lang.String OPERATION_SEARCH
           
static java.lang.String OPERATION_SUSPEND
           
static java.lang.String OPERATION_TEST
           
static java.lang.String PASSWORD_NOT_ALLOWED_ON_RESTORE
          Name for a property indicating that the password is NOT allowed when the account is restored.
static java.lang.String PASSWORD_NOT_REQUIRED_ON_RESTORE
          Name for a property indicating whether the password is required for restoring entities.
static java.lang.String SERVICE_PROVIDER_FACTORY
          Deprecated. Use method getServiceProviderFactory().
static 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.
static java.lang.String SYNCHRONOUS
          Name of a property indicating that the service provider is synchronous.
 
Constructor Summary
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.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.
 
Method Summary
 java.lang.String getComplexAttributeHandlerClassName()
          Return the name of the Complex Attribute Handler object class
 java.util.Collection<java.lang.String> getComplexAttributeNames()
          Return the Collection of String complex attribute names
 java.lang.String getCurrentMode()
          Gets the current communication mode.
 boolean getIsReplaceMultiValueAttribute(java.lang.String operationName, java.lang.String attributeName)
          return whether specified attribute is replace-multi-value for specified operation.
 boolean getIsRequiredAccountAttribute(java.lang.String operationName, java.lang.String attributeName)
          return whether specified attribute is required for specified operation.
 boolean getIsRequiredServiceAttribute(java.lang.String operationName, java.lang.String attributeName)
          return whether specified attribute is required for specified operation.
 boolean getIsSendOnlyAttribute(java.lang.String operationName, java.lang.String attributeName)
          return whether specified attribute is a send-only attribute for specified operation.
 ServiceProviderInfoOperation getOperationDescriptor(java.lang.String operationName)
          get the specified operation descriptor.
 java.util.Map<java.lang.String,ServiceProviderInfoOperation> getOperationDescriptors()
          get the map of operation descriptors,
 java.util.Properties getProperties()
          Gets the protocol and behavior properties for the service type
 java.lang.String getServiceProfileName()
          Gets the name of the service profile
 java.lang.String getServiceProviderFactory()
          Returns the service provider factory for the service profile: the fully qualified name of the java class.
 java.lang.String[] getSupportedAttributeNames()
           
 java.lang.String[] getSupportedModes()
          Gets the modes that are supported by this service.
 boolean isComplexAttributeName(java.lang.String attrName)
          Return whether the specified attribute is a complex attribute (to be processed by the complex attribute handler class).
 boolean isDeleteAttributesOnModify()
          Property indicating that missing attributes should be deleted on a modify.
 boolean isFilteringSupported()
          Property indicates whether filtered searches are supported
 boolean isMultiValuedAttribute(java.lang.String attrName)
          return whether specified attribute name is one of the multi-valued account attributes
 boolean isPasswordAllowedOnRestore()
          Property indicates that the account password MAY be send when restoring an account.
 boolean isPasswordRequiredOnRestore()
          Property indicates that the account password is required for restoring accounts.
 boolean isStoreAccountPassword()
          Deprecated. We not longer ever store the password locally, so the flag should not be used.
 void setCurrentMode(java.lang.String currentMode)
          Sets the current communication mode.
 void setSupportedAttributeNames(java.lang.String[] supportedAttributeNames)
           
 java.lang.String toString()
          Format all of the parameters into a string
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

OPERATION_TEST

public static final java.lang.String OPERATION_TEST
See Also:
Constant Field Values

OPERATION_ADD

public static final java.lang.String OPERATION_ADD
See Also:
Constant Field Values

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.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.

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.


IBM Security Identity Manager 6.0.0
© Copyright International Business Machines Corporation 2007, 2012. All rights reserved. US Government Users Restricited Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.