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.


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