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