Class ServiceConfig


  • @SupportedAll
    public class ServiceConfig
    extends Object
    The class ServiceConfig provides interfaces to manage the configuration information of a service configuration. It provides methods to get and set configuration parameters for this service configuration.
    • Constructor Detail

      • ServiceConfig

        protected ServiceConfig​(ServiceConfigManager scm,
                                com.sun.identity.sm.ServiceConfigImpl sc)
        Protected constructor
    • Method Detail

      • getServiceName

        public String getServiceName()
        Returns the name of this service configuration.
        Returns:
        the name of this service configuration
      • getVersion

        public String getVersion()
        Returns the service version
        Returns:
        service version
      • getComponentName

        public String getComponentName()
        Returns the service component name. It is "/" separated and the root component name is "/".
        Returns:
        service component name
      • getName

        public String getName()
        Returns the service name.
        Returns:
        service name
      • getSchemaID

        public String getSchemaID()
        Returns the service component's schema ID. For global and organization's root configurations it returns an empty string.
        Returns:
        service component's schema ID
      • getPriority

        public int getPriority()
        Returns the priority assigned to the service configuration.
        Returns:
        the priority assigned to the service configuration
      • setPriority

        public void setPriority​(int priority)
                         throws SSOException,
                                SMSException
        Sets the priority to the service configuration.
        Parameters:
        priority - the priority to be assigned to the configuration
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • getLabeledUri

        public String getLabeledUri()
        Deprecated.
        The labeledURI setting shall not be used for storing configuration data.
        Returns the labeled uri assigned to the service configuration.
        Returns:
        the labeled uri assigned to the service configuration
      • setLabeledUri

        public void setLabeledUri​(String luri)
                           throws SSOException,
                                  SMSException
        Deprecated.
        The labeledURI setting shall not be used for storing configuration data.
        Sets the labeled uri to the service configuration.
        Parameters:
        luri - the labeled uri to be assigned to the configuration
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • deleteLabeledUri

        public void deleteLabeledUri​(String luri)
                              throws SSOException,
                                     SMSException
        Deprecated.
        The labeledURI setting shall not be used for storing configuration data.
        delete the labeled uri to the service configuration.
        Parameters:
        luri - the labeled uri to be assigned to the configuration
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • getSubConfigNames

        public Set<String> getSubConfigNames()
                                      throws SMSException
        Returns the names of all service's sub-configurations.
        Returns:
        set of names of all service's sub-configurations
        Throws:
        SMSException - if there is an error accessing the data store
      • getSubConfigNames

        public Set<String> getSubConfigNames​(String pattern)
                                      throws SMSException
        Method to get names of service's sub-configurations that match the given pattern.
        Parameters:
        pattern - pattern to match for sub-configuration names
        Returns:
        names of the service sub-configuration
        Throws:
        SMSException - if an error occurred while performing the operation.
      • getSubConfigNames

        public Set<String> getSubConfigNames​(String pattern,
                                             String schemaName)
                                      throws SMSException
        Method to get names of service's sub-configurations that match the given pattern and belongs to the specified service schema name.
        Parameters:
        pattern - pattern to match for other entities.
        schemaName - service schema name.
        Returns:
        names of the service sub-configuration
        Throws:
        SMSException - if an error occurred while performing the operation.
      • getSubConfigEntity

        public Map<String,​Set<String>> getSubConfigEntity​(String entityName)
                                                         throws SMSException
        Method to retrieve a single service sub-configuration entry by name. Avoids otherwise having to filter through a large list of entries using getSubConfigNames(String pattern)
        Parameters:
        entityName - name to match for entity
        Returns:
        Details of the entry found
        Throws:
        SMSException - if an error occurred while performing the operation
      • getExportedSubConfigNames

        public Set<String> getExportedSubConfigNames​(String serviceId)
                                              throws SMSException
        Returns a set of exported fully qualified sub-configuration names that can be imported used locally as service configuration
        Parameters:
        serviceId - service schema identifier
        Returns:
        names of fully qualified applicable service sub-configurations
        Throws:
        SMSException - if an error occurred while performing the operation.
      • getSubConfig

        public ServiceConfig getSubConfig​(String subConfigName)
                                   throws SSOException,
                                          SMSException
        Returns the service's sub-configuration given the service's sub-configuration name.
        Parameters:
        subConfigName - The name of the service's sub-configuration to retrieve.
        Returns:
        The ServiceConfig object corresponding to the specified name of the service's sub-configuration.
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • addSubConfig

        public void addSubConfig​(String subConfigName,
                                 String subConfigId,
                                 org.forgerock.openam.sm.ConfigurationAttributes attrs)
                          throws SMSException,
                                 SSOException
        Adds a service sub-configuration with configuration parameters.
        Parameters:
        subConfigName - the name of service sub-configuration to add
        subConfigId - type of service sub-configuration
        attrs - configuration parameters for the sub-configuration
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • addSubConfig

        public void addSubConfig​(String subConfigName,
                                 String subConfigId,
                                 int priority,
                                 org.forgerock.openam.sm.ConfigurationAttributes attrs)
                          throws SMSException,
                                 SSOException
        Adds a service sub-configuration with configuration parameters.
        Parameters:
        subConfigName - the name of service sub-configuration to add
        subConfigId - type of service sub-configuration
        priority - the priority of the configuration
        attrs - configuration parameters for the sub-configuration
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • addSubConfig

        public void addSubConfig​(String subConfigName,
                                 String subConfigId,
                                 int priority,
                                 org.forgerock.openam.sm.ConfigurationAttributes attrs,
                                 boolean isNewRealm)
                          throws SMSException,
                                 SSOException
        Adds a service sub-configuration with configuration parameters.
        Parameters:
        subConfigName - the name of service sub-configuration to add
        subConfigId - type of service sub-configuration
        priority - the priority of the configuration
        attrs - configuration parameters for the sub-configuration
        isNewRealm - indicates if the realm is being created
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • removeSubConfig

        public void removeSubConfig​(String subConfigName)
                             throws SMSException,
                                    SSOException
        Removes the service sub-configuration.
        Parameters:
        subConfigName - name of service sub-configuration to remove
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • importSubConfig

        public void importSubConfig​(String subConfigName,
                                    String exportedSubConfigName)
                             throws SMSException,
                                    SSOException
        Imports a service sub-configuration to the list of localy defined sub-configuration. The imported sub-configuration name must be fully qualified, as obtained from getExportedSubConfigNames.
        Parameters:
        subConfigName - the name of service sub-configuration to add locally
        exportedSubConfigName - the fully qualified name of the exported sub-configuration name
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • getAttributes

        public org.forgerock.openam.sm.ConfigurationAttributes getAttributes()
        Returns a defensive copy of service configuration parameters. The keys in the Map contains the attribute names and their corresponding values in the Map is a Set that contains the values for the attribute. This method picks up the default values for any attributes not defined in the ServiceConfig. The default values for these attributes are picked up from the Service Schema. If there is no default value defined, then this method will still return the attribute-value pair, except that the Set will be a Collections.EMPTY_SET. This is distinct from a Set containing only one empty value. The latter represents an attribute whose value has been set to an empty value by the application using the setAttributes() method. In case the retrieved attributes are not modified by the caller, use getAttributesForRead() instead.
        Returns:
        The Map where key is the attribute name and value is the Set of attribute values.
      • getAttributeValue

        @Nullable
        public Set<String> getAttributeValue​(String attributeName)
        Returns a service configuration parameter's values. The value is an immutable Set that contains the values for the attribute.
        Parameters:
        attributeName - The name of the attribute to return.
        Returns:
        The immutable Set of attribute values. May be null if the attribute isn't defined.
      • getAttributesWithoutDefaults

        public org.forgerock.openam.sm.ConfigurationAttributes getAttributesWithoutDefaults()
        Returns the service configuration parameters without inheriting the default values from service's schema. The keys in the Map contains the attribute names and their corresponding values in the Map is a Set that contains the values for the attribute.
      • getAttributesForRead

        public org.forgerock.openam.sm.ConfigurationAttributes getAttributesForRead()
        Returns the service configuration parameters for read only, modification cannot be performed on the return Map. The keys in the Map contains the attribute names and their corresponding values in the Map is a Set that contains the values for the attribute. This method picks up the default values for any attributes not defined in the ServiceConfig. The default values for these attributes are picked up from the Service Schema. If there is no default value defined, then this method will still return the attribute-value pair, except that the Set will be a Collections.EMPTY_SET. This is distinct from an empty Set with no entries in it. AN empty set represents an attribute whose value has been set to an empty value by the application using the setAttributes() method.
        Returns:
        the Map where key is the attribute name and value is the Set of attribute values
      • getAttributesWithoutDefaultsForRead

        public org.forgerock.openam.sm.ConfigurationAttributes getAttributesWithoutDefaultsForRead()
        Returns the service configuration parameters for read only without inheriting the default values from service's schema. The keys in the Map contains the attribute names and their corresponding values in the Map is a Set that contains the values for the attribute.
      • setAttributes

        public void setAttributes​(org.forgerock.openam.sm.ConfigurationAttributes attrs)
                           throws SMSException,
                                  SSOException
        Sets the service configuration parameters. The keys in the Map contains the attribute names and their corresponding values in the Map is a Set that contains the values for the attribute. This method will replace the existing attribute values with the given one. For attributes that are not specified in attrs, it will not be modified.
        Parameters:
        attrs - the Map where key is the attribute name and value is the Set of attribute values
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • addAttribute

        public void addAttribute​(String attrName,
                                 Set<String> values)
                          throws SMSException,
                                 SSOException
        Adds a configuration parameter to the service configuration.
        Parameters:
        attrName - the name of the attribute to add
        values - the set of values to add
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • removeAttribute

        public void removeAttribute​(String attrName)
                             throws SMSException,
                                    SSOException
        Removes a configuration parameter from the service configuration.
        Parameters:
        attrName - the name of the attribute to remove
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • removeAttributes

        public void removeAttributes​(Set<String> attrNames)
                              throws SMSException,
                                     SSOException
        Removes a configuration parameters from the service configuration.
        Parameters:
        attrNames - Set of attribute names to remove
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • removeAttributeValues

        public void removeAttributeValues​(String attrName,
                                          Set<String> values)
                                   throws SMSException,
                                          SSOException
        Removes the specific values for the given configuration parameter.
        Parameters:
        attrName - the name of the attribute
        values - set of attribute values to remove from the given attribute
        Throws:
        SMSException - f there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • replaceAttributeValue

        public void replaceAttributeValue​(String attrName,
                                          String oldValue,
                                          String newValue)
                                   throws SMSException,
                                          SSOException
        Replaces old value of the configuration parameter with new value.
        Parameters:
        attrName - the name of the attribute
        oldValue - the old value to remove from the attribute
        newValue - the new value to add to the attribute
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • replaceAttributeValues

        public void replaceAttributeValues​(String attrName,
                                           Set<String> oldValues,
                                           Set<String> newValues)
                                    throws SMSException,
                                           SSOException
        Replaces the old values of the configuration parameter with the new values.
        Parameters:
        attrName - the name of the attribute
        oldValues - the set of old values to remove from the attribute
        newValues - the set of new values to add to the attribute
        Throws:
        SMSException - if there is an error occurred while performing the operation
        SSOException - if the user's single sign-on is invalid or expired
      • getDN

        public String getDN()
        Returns the LDAP DN represented by this ServiceConfig object.
        Returns:
        the LDAP DN represented by this ServiceConfig object.
      • getLastModifiedTime

        public String getLastModifiedTime()
                                   throws SMSException,
                                          SSOException
        Returns the last modified time stamp of this configuration This method is expensive because it does not cache the modified time stamp but goes directly to the data store to obtain the value of this entry
        Returns:
        The last modified time stamp as a string with the format of yyyyMMddhhmmss
        Throws:
        SMSException - if there is an error trying to read from the data store
        SSOException - if the single sign-on token of the user is invalid.
      • getExportedOrganizationNames

        public Set<String> getExportedOrganizationNames()
        Returns the organization names to which the service configuration is being exported. The organization names would be fully qualified starting with a forward slash "/". To specify an entire sub-tree that can use the service configuration, a "*" would have to be appended after the final forward slash. For example "/a/b/c/*" would imply all sub-organization under "/a/b/c" can use this service configuration. Exporting implies privileges to read the service configuration data, but not to modify or delete.
        Returns:
        names of organizations to which service configuration configuration is exported
      • setExportedOrganizationNames

        public void setExportedOrganizationNames​(Set<String> names)
                                          throws SMSException,
                                                 SSOException
        Sets the organization names that can import the service configuration. The organization names must be fully qualified, starting with a forward slash "/". To specify an entire sub-tree that can use the service configuration, a "*" would have to be appended after the final forward slash. For example "/a/b/c/*" would imply all sub-organization under "/a/b/c" can use this service configuration. Exporting implies privileges to read the service configuration data and not to modify or delete.
        Parameters:
        names - names of the organizations that can import the service configuration
        Throws:
        SMSException
        SSOException
      • addExportedOrganizationNames

        public void addExportedOrganizationNames​(Set<String> names)
                                          throws SMSException,
                                                 SSOException
        Adds the organization names to the list of organization names that can import this service configutation. If one does not exist it will be created. The organization names must be fully qualified, starting with a forward slash "/". To specify an entire sub-tree that can use the service configuration, a "*" would have to be appended after the final forward slash. For example "/a/b/c/*" would imply all sub-organization under "/a/b/c" can use this service configuration. Exporting implies privileges to read the service configuration data and not to modify or delete.
        Parameters:
        names - names of the organizations that can import the service configuration
        Throws:
        SMSException
        SSOException
      • removeSharedOrganizationNames

        public void removeSharedOrganizationNames​(Set<String> names)
                                           throws SMSException,
                                                  SSOException
        Removes the organization names from the list of organization names that can import the service configuration. If the organization has already imported the service configuration, it would have to be undone before the organization name can be removed from the list. The organization names must be fully qualified, starting with a forward slash "/". To specify an entire sub-tree that can use the service configuration, a "*" would have to be appended after the final forward slash. For example "/a/b/c/*" would imply all sub-organization under "/a/b/c" can use this service configuration.
        Parameters:
        names - names of the organizations that will be removed from the list of organization names that can import the service configuration
        Throws:
        SMSException
        SSOException
      • toString

        public String toString()
        Returns String representation of the ServiceConfig object. It returns attributes defined and sub configurations.
        Overrides:
        toString in class Object
        Returns:
        String representation of the ServiceConfig object.
      • isValid

        public boolean isValid()
        Returns the status of this Service Configuration Object. Must be used by classes that cache ServiceConfig.
        Returns:
        true if this object is still valid.
      • isValid

        public boolean isValid​(org.forgerock.openam.services.datastore.DataStoreId dataStoreId)
        Returns the status of this Service Configuration Object with a specific datastore. Must be used by classes that cache ServiceConfig with knowledge of their datastore.
        Returns:
        true if this object is still valid.
      • exists

        public boolean exists()
        Returns true if the entry exist