Topic
8 replies Latest Post - ‏2013-05-13T10:22:36Z by Nuttapong
SystemAdmin
SystemAdmin
9855 Posts
ACCEPTED ANSWER

Pinned topic TDI Password synchronization is getting error

‏2013-04-03T09:26:31Z |
Hi,

I have to synchronize password between ITIM and AD.
I'm done in installation plug-in in AD server and using LDAP Password Store.
Now I'm creating TDI project to read the changed password from LDAP Password Store to assign to ITIM users.

I use LDAP Connector to connect to my LDAP Password Store and see all of the changed password of AD users.
I assign the attributes following this:
ibm-diUserId <= conn
ibm-diPassword <= conn

Then I use JNDI Connector to connect to ITIM and setting the attributes following this:
ret.value = "uid="work",dc=com" => $dn
var oc = system.newAttribute( "objectClass" );
oc.addValue( "top" );
oc.addValue( "erManagedItem" );
oc.addValue( "person" );
oc.addValue( "erPersonItem" );
//oc.addValue( "tmbperson" );
oc.addValue( "organizationalPerson" );
oc.addValue( "inetOrgPerson" );
ret.value = oc;
=> objectclass
work => uid
work => userpassword

When I run my project, I get this error:
02:19:57,527 INFO - LDAPConnector-LDAPPasswordStore CTGDIS058I Connector com.ibm.di.connector.LDAPConnector inherits from parent.
02:19:57,527 INFO - LDAPConnector-LDAPPasswordStore CTGDIS187I Loaded com.ibm.di.connector.LDAPConnector, 2.3-di7.1.1 1.24.5.17, 2011/11/11.
02:19:57,527 INFO - LDAPConnector-LDAPPasswordStore CTGDIS064I Loading Attribute Map.
02:19:57,527 INFO - LDAPConnector-LDAPPasswordStore CTGDIS065I Load Hooks.
02:19:57,543 INFO - ModifyPassword CTGDIS058I Connector com.ibm.di.connector.JNDIConnector inherits from parent.
02:19:57,543 INFO - ModifyPassword CTGDIS187I Loaded com.ibm.di.connector.JNDIConnector, 2.3-di7.1.1 1.52, 2011/08/02.
02:19:57,543 INFO - ModifyPassword CTGDIS063I Using advanced link criteria (script).
02:19:57,543 INFO - ModifyPassword CTGDIS064I Loading Attribute Map.
02:19:57,543 INFO - ModifyPassword CTGDIS065I Load Hooks.
02:19:57,543 INFO - LDAPConnector-LDAPPasswordStore CTGDIS044I Initializing Connector.
02:19:57,543 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ009I No binary attributes specified using default: photo personalSignature audio jpegPhoto javaSerializedData thumbnailPhoto thumbnailLogo userPassword userCertificate authorityRevocationList certificateRevocationList crossCertificatePair x500UniqueIdentifier objectGUID objectSid deltaRevocationList.
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ086I Dumping LDAP Server Information...
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ088I Supported Controls of LDAP Server:
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Paged Search Control: true.
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Server Side Sorting: true.
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Virtual List View: true.
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Persistent Search Control: true.
02:19:57,559 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Tree Delete Control: true.
02:19:57,574 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Dirsync Control: false.
02:19:57,574 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ089I Control Server Admin Control: true.
02:19:57,574 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ090I Naming Contexts (use in your search base parameter).
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index0: CN=SCHEMA.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index1: CN=CONFIGURATION.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index2: CN=LOCALHOST.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index3: CN=IBMPOLICIES.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index4: CN=DELETED OBJECTS.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index5: DC=TMBBANK,DC=COM.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ092I Naming context at index6: O=TMB,C=TH.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ093I Finished dumping LDAP Server Information.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDIS158I Registering Script Beans.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDIS045I Connector is iterator, call selectEntries.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ017I The selectEntries method will search the LDAP server for entries using the search base dc=tmbbank, O=TMB,C=TH and the search filter 'ibm-diUserid=*'.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDJQ019I Entries were returned from the search.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDIS158I Registering Script Beans.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDIS484I Connector com.ibm.di.connector.LDAPConnector: 2.3-di7.1.1 1.24.5.17, 2011/11/11.
02:19:57,590 INFO - LDAPConnector-LDAPPasswordStore CTGDIS046I Initialization finished.
02:19:57,590 INFO - ModifyPassword CTGDIS044I Initializing Connector.
02:19:57,590 INFO - ModifyPassword CTGDIS158I Registering Script Beans.
02:19:57,590 INFO - ModifyPassword CTGDIS484I Connector com.ibm.di.connector.JNDIConnector: 2.3-di7.1.1 1.52, 2011/08/02.
02:19:57,606 INFO - ModifyPassword CTGDIS046I Initialization finished.
02:19:57,606 INFO - CTGDIS087I Iterating.
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS504I Result of attribute mapping
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS505I The 'conn' object
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS003I *** Start dumping Entry
02:19:57,606 INFO - Operation: generic
02:19:57,606 INFO - Entry attributes:
02:19:57,606 INFO - $dn (replace): 'ibm-diUserId=28489,dc=tmbbank, O=TMB,C=TH'
02:19:57,606 INFO - ibm-diUserId (replace): '28489'
02:19:57,606 INFO - ibm-diPassword (replace): 'Password1'
02:19:57,606 INFO - ibm-diExtendedData (replace): 'KANNAWAT DANGPRIAW'
02:19:57,606 INFO - objectclass (replace): 'ibm-diPerson' 'top'
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS004I *** Finished dumping Entry
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS506I The 'work' object
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS003I *** Start dumping Entry
02:19:57,606 INFO - Operation: generic
02:19:57,606 INFO - Entry attributes:
02:19:57,606 INFO - ibm-diPassword (replace): 'Password1'
02:19:57,606 INFO - ibm-diUserId (replace): '28489'
02:19:57,606 INFO - LDAPConnector-LDAPPasswordStore CTGDIS004I *** Finished dumping Entry
02:19:57,606 INFO - ModifyPassword CTGDIS495I handleException , update, com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=53: 'work.getString()' is null
02:19:57,606 ERROR - ModifyPassword CTGDIS810E handleException - cannot handle exception , update
com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=53: 'work.getString()' is null
at com.ibm.jscript.ASTTree.ASTMember.interpret(ASTMember.java:153)
at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:88)
at com.ibm.jscript.ASTTree.binaryop.ASTBinaryAdd.interpret(ASTBinaryAdd.java:51)
at com.ibm.jscript.ASTTree.ASTAssign.interpret(ASTAssign.java:91)
at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:421)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:238)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:241)
at com.ibm.jscript.JSInterpreter.interpret(JSInterpreter.java:57)
at com.ibm.di.script.ScriptEngine.interpret(ScriptEngine.java:940)
at com.ibm.di.script.ScriptEngine.interpret(ScriptEngine.java:910)
at com.ibm.di.server.SearchCriteria.buildCriteriaScript(SearchCriteria.java:1135)
at com.ibm.di.server.SearchCriteria.buildCriteria(SearchCriteria.java:1063)
at com.ibm.di.server.AssemblyLineComponent.update(AssemblyLineComponent.java:1702)
at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(AssemblyLine.java:3737)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3351)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2960)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2943)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2912)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1311)
02:19:57,606 ERROR - CTGDIS266E Error in NextConnectorOperation. Exception occurred: com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=53: 'work.getString()' is null
com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=53: 'work.getString()' is null
at com.ibm.jscript.ASTTree.ASTMember.interpret(ASTMember.java:153)
at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:88)
at com.ibm.jscript.ASTTree.binaryop.ASTBinaryAdd.interpret(ASTBinaryAdd.java:51)
at com.ibm.jscript.ASTTree.ASTAssign.interpret(ASTAssign.java:91)
at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:421)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:238)
at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:241)
at com.ibm.jscript.JSInterpreter.interpret(JSInterpreter.java:57)
at com.ibm.di.script.ScriptEngine.interpret(ScriptEngine.java:940)
at com.ibm.di.script.ScriptEngine.interpret(ScriptEngine.java:910)
at com.ibm.di.server.SearchCriteria.buildCriteriaScript(SearchCriteria.java:1135)
at com.ibm.di.server.SearchCriteria.buildCriteria(SearchCriteria.java:1063)
at com.ibm.di.server.AssemblyLineComponent.update(AssemblyLineComponent.java:1702)
at com.ibm.di.server.AssemblyLine.msExecuteNextConnector(AssemblyLine.java:3737)
at com.ibm.di.server.AssemblyLine.executeMainStep(AssemblyLine.java:3351)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2960)
at com.ibm.di.server.AssemblyLine.executeMainLoop(AssemblyLine.java:2943)
at com.ibm.di.server.AssemblyLine.executeAL(AssemblyLine.java:2912)
at com.ibm.di.server.AssemblyLine.run(AssemblyLine.java:1311)
02:19:57,621 INFO - CTGDIS100I Printing the Connector statistics.
02:19:57,621 INFO - LDAPConnector-LDAPPasswordStore Get:1
02:19:57,621 INFO - Print-Parameter Calls: 1
02:19:57,621 INFO - IF Branch True:1, Branch False:0
02:19:57,621 INFO - ModifyPassword Errors:1
02:19:57,621 INFO - Default On Error Calls: 0
02:19:57,621 INFO - CTGDIS104I Total: Get:1, Errors:2.
02:19:57,621 INFO - CTGDIS101I Finished printing the Connector statistics.
02:19:57,621 ERROR - CTGDIS077I Failed with error: Script interpreter error, line=1, col=53: 'work.getString()' is null.
Help me please.

Thanks a lot.
Nuttapong
Updated on 2013-04-04T04:46:45Z at 2013-04-04T04:46:45Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    9855 Posts
    ACCEPTED ANSWER

    Re: TDI Password synchronization is getting error

    ‏2013-04-03T09:35:24Z  in response to SystemAdmin
    Sorry the web has remove some special characters.
    Please see my attachment file for mapping attributes.
    • SystemAdmin
      SystemAdmin
      9855 Posts
      ACCEPTED ANSWER

      Re: TDI Password synchronization is getting error

      ‏2013-04-03T10:11:25Z  in response to SystemAdmin
      Instead of using work use work.attribute - same thing applies for conn assignments.

      Be aware that the attribute map component does not support all the "fancy" assignment syntaxes you can use in script components - hopefully this will be solved in the future - but until then stick to the simple dot (.) syntax or use the full ret.value assignement with the getString()/getAttribute() methods depending on your logic. You can of course have a large script in the attribute map with whatever you want - it is "just" a syntax question...

      HTH

      Regards
      Franz Wolfhagen
  • SystemAdmin
    SystemAdmin
    9855 Posts
    ACCEPTED ANSWER

    Re: TDI Password synchronization is getting error

    ‏2013-04-03T11:13:48Z  in response to SystemAdmin
    Hi Franz Wolfhagen,

    I have followed all of your suggestions but I still got 'work.getString()' is null in log.
    I have tested print out all attributes to FileConnector, all attributes have the value, no one is null.
    I don't know why when I try JNDIConnector, I got 'work.getString()' is null.

    Is there any way to solve this?

    Thanks a lot.
    Nuttapong
    • yn2000
      yn2000
      1068 Posts
      ACCEPTED ANSWER

      Re: TDI Password synchronization is getting error

      ‏2013-04-03T13:30:18Z  in response to SystemAdmin
      Is there a stupendous reason not to use the AD Password Sync, instead of building your own script?

      Rgds. YN.
  • SystemAdmin
    SystemAdmin
    9855 Posts
    ACCEPTED ANSWER

    Re: TDI Password synchronization is getting error

    ‏2013-04-04T02:51:27Z  in response to SystemAdmin
    No, Is there another AD Password Sync? I don't know it before. I think I can use only TDI Password Sync plug-in.

    Please give me a link of AD Password Sync.

    Thanks a lot,
    Nuttapong
    • jdell
      jdell
      96 Posts
      ACCEPTED ANSWER

      Re: TDI Password synchronization is getting error

      ‏2013-04-04T04:10:47Z  in response to SystemAdmin
      Yes there is. It is called the Password Synchronization for Active Directory Plug-in. Check the TIM info centre under the Adapter Documentation section.

      We'll be using this adapter (plugin) soon when we deploy DPRA in our enterprise. This plug-in works in conjunction with the TIM AD adapter.

      Cheers,
      John D.
      • Nuttapong
        Nuttapong
        22 Posts
        ACCEPTED ANSWER

        Re: TDI Password synchronization is getting error

        ‏2013-05-13T10:22:36Z  in response to jdell

        Hi jdell

         

        I have encountered the problem when installing AD Windows Password Sync Plugin for ISIM 6.0.
        I'm sure that I have followed the step in Installation and Configuration Guide. 
        But when I'm verifying the installation, I found that the TivoliPwdSync64.dll is missing from C:\Windows\system32.
        I tried to find the solution but I found the people who got the same problem follow the link:
         
        Have you gotten this problem? If yes, how can I resolve this?
         
        Best regards,
        Nuttapong
  • SystemAdmin
    SystemAdmin
    9855 Posts
    ACCEPTED ANSWER

    Re: TDI Password synchronization is getting error

    ‏2013-04-04T04:46:45Z  in response to SystemAdmin
    Thanks a lot. I'll try it.

    Best regards,
    Nuttapong