Using a converter to map the suspended attribute to other values in the DYN connectors
search cancel

Using a converter to map the suspended attribute to other values in the DYN connectors

book

Article ID: 53378

calendar_today

Updated On:

Products

CA Directory CA Identity Manager CA Identity Governance CA Identity Portal CA Risk Analytics CA Secure Cloud SaaS - Arcot A-OK (WebFort) CLOUDMINDER ADVANCED AUTHENTICATION CA Secure Cloud SaaS - Advanced Authentication CA Secure Cloud SaaS - Identity Management CA Secure Cloud SaaS - Single Sign On CA Security Command Center CA Data Protection (DataMinder) CA User Activity Reporting

Issue/Introduction

Description

It is sometimes necessary for the suspended attribute in DYN connectors to be mapped to values other than 0 or 1. That is, the DYN connectors may use True or False, Yes/No or Active/Inactive etc. A JCS converter can be used to convert the suspended attribute from values the connector can accept to values IM Provisioning Server can understand and vice versa. The conversion takes place in the JCS when the suspended attribute is modified.

 

Environment

Release:
Component: ETRADM

Resolution

*This solution assumes the reader has read the JCS Programming Guide and has a good understanding of DYN connectors. If this is not the case, it is recommended to read the JCS documentation such as the Programming and Implementation guides in order to understand the provided solution.

As an example, there is a DYN JDBC connector with a UserEnabled Field that is mapped to the eTSuspended Attribute.
The connector can only accept the values 'yes' or 'no' for the UserEnabled field. A JCS converter is implemented to convert the yes or no values to 1 and 0 and vice versa.

The first step is to add the boolValues and isStoreSymbolic metadata onto eTSuspended attribute in the metadata for the endpoint.

  1. Load the DYN Connector Project file (.con) in Connector Xpress.
  2. Export the project to an xml file (File menu --> Export Data Model xml)
  3. Save the xml file and open it in a text or preferably, an xml editor.
  4. Find the metadata for the eTSuspended attribute and add the 'boolValue' Sequence 'isStoreSymbolic' metadata like so: ...

    <property name="eTSuspended">
         <value default="false">
             <boolValue>false</boolValue>
         </value>
         <metadata name="boolValues">
             <value>
                 <sequenceValue>
                     <val><strValue>no</strValue></val>
                     <val><strValue>yes</strValue></val>
                 </sequenceValue>
             </value>
         </metadata>     <metadata name="isStoreSymbolic">
             <value default="false">
                 <boolValue>true</boolValue>
             </value>
         </metadata>
    ...the rest of eTSuspended metadata nodes go here ...



  • In the over-ride connector.xml for jdbc, add values for isStoreSymbolic and boolValues to the configuration for BoolPropertyConverter. In the \Identity Manager\Connector Server\conf\override\jdbc directory, rename SAMPLE.connector.xml to connector.xml and edit it. 

 <bean class="com.ca.jcs.cfg.MetaPluginConfig">
           <property name="pluginClass">
              <value>com.ca.jcs.converter.meta.BoolPropertyConverter</value>
            </property> ... add the following property values here ...
      <property name="metadataPropNames">
         <list>
            <value>isStoreNumeric</value>
            <value>isStoreSymbolic</value>
            <value>boolValues</value>
         </list>
     </property>

These entries tell the JCS to load the Bool converter for attributes that have a metadata entry named "isStoreSymbolic" or "boolValues". i.e. the two metadata entries added to the eTSuspended attribute above.

  • Save the connector.xml and restart the JCS service for the changes to the override connector.xml to take effect.

    Test the conversion for the DYN endpoint by redeploying the metadata from the modified xml file ensuring that the correct values are being propagated. Note: After redeploying the metadata, the provisioning manager needs to be restarted to read the new metadata for the endpoint.