Hi Clément,

I modified the code per instruction to use rdjs with single thread, "lsc -t 1" 
but it did not open a debug windows.  What else do I need to make debugger 
work?  Do I need additional Rhino JS packages?

> Date: Thu, 22 Jan 2015 10:31:58 +0100
> Subject: Re: [lsc-users] FW: AD Group Sync to OpenLDAP with Java 8
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> 
> 2015-01-21 23:05 GMT+01:00 Clément OUDOT <[email protected]>:
> > 2015-01-21 22:36 GMT+01:00 W. Ho <[email protected]>:
> >>
> >> Hi,
> >>
> >> I have come across an issue to sync AD groups to OpenLDAP when invoking 
> >> Java
> >> 8.
> >>
> >> I am using lsc core 2.1.2 with CentOS 6.5 and CentOS 7.  Everything works
> >> fine when I use Java 7.  However, when switching to Java 8 it fails.  The
> >> error message is "invalid attribute syntax", followed by "member: value #0
> >> invalid per syntax".
> >>
> >> I performed the packet sniffing over the wire to see what breaks the
> >> transaction.  I discovered that when running Java 7 I could see group
> >> members (full list with dn) were passing to the client and the sync went
> >> through.  When running Java 8, instead of pulling all members from the 
> >> group
> >> the group attribute shew as "[object array]".  No group member was
> >> available.
> >>
> >> The code I use to sync group is listed below.  Appreciate any help to
> >> address this issue.
> >>
> >> Thanks,
> >>
> >>         <dataset>
> >>          <name>member</name>
> >>          <policy>FORCE</policy>
> >>          <forceValues>
> >>            <string>
> >>            <![CDATA[rjs:
> >>                 var membersSrcDn = srcBean.getDatasetValuesById("member");
> >>                 var membersDstDn = [];
> >>                 for  (var i=0; i<membersSrcDn.size(); i++) {
> >>                      var memberSrcDn = membersSrcDn.get(i);
> >>                      var sAMAccountName = "";
> >>                      try {
> >>                          sAMAccountName = srcLdap.attribute(memberSrcDn,
> >> "sAMAccountName").get(0);
> >>                         } catch(e) {
> >>                             continue;
> >>                         }
> >>                      var destDn = ldap.search("ou=Users,ou=HQ", "(uid=" +
> >> sAMAccountName + ")");
> >>                      if (destDn.size() == 0 || destDn.size() > 1) {
> >>                               continue;
> >>                       }
> >>                      var destMemberDn = destDn.get(0) + "," +
> >> ldap.getContextDn();
> >>                      membersDstDn.push(destMemberDn);
> >>                 }
> >>                 membersDstDn
> >>            ]]>
> >>            </string>
> >>          </forceValues>
> >>       </dataset>
> >>
> >
> >
> > Use 'rjs:' instead of 'js:' to explicitely call rhino interpreter.
> > Else it calls the javascript interpreter of the JVM which has change
> > between java7 and java8.
> 
> 
> Sorry, it seems you already use rjs. Could run the java debugger with
> rdjs to try to get more information? See
> http://lsc-project.org/wiki/documentation/latest/scripting/start#debugger
> 
> Clément.
                                          
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-users

Reply via email to