This LSC plugin enables event-based updates handling upon supported directories based on LDAP Persistent search control and LDAP Sync (RFC 4533).
The rfc 4533 ( https://tools.ietf.org/html/rfc4533 ) has the following OID 1.3.6.1.4.1.4203.1.9.1.1 LDAP Content Synchronization Request Control RFC 4533 <https://docs.ldap.com/specs/rfc4533.txt> I run a test on a eDirectory v9.1.4 as stated on microfocus forum https://community.microfocus.com/t5/eDirectory-User-Discussions/Can-you-RFC-4533-Ldap-Sync-with-Jldap/td-p/2233010 ldapsearch -h yourserver -D cn=admin,o=novell -w password -b "" -s base supportedcontrol=* | grep 1.3.6.1.4.1.4203.1.9.1.1 and it seems it is still not supported On Fri, May 22, 2020 at 10:49 AM Clément OUDOT <clement.ou...@worteks.com> wrote: > > Le 22/05/2020 à 05:36, 鄭旭宏 a écrit : > > Dear Sir : > > > I have try to use Event-based LDAP source service to sync LDAP -> DB. > It works fine when I use OpenDJ as source, but when I use > > Novell eDir as source (The document include this serverType), > > it appears error : > > > 五月 22 11:05:13 - DEBUG - no more byte to decode in the stream > 五月 22 11:05:13 - DEBUG - TLV Tree : TLV0x*A0*(0) > 五月 22 11:05:13 - DEBUG - Transition from state <ATTRIBUTE_VALUE_SR_STATE> > to state <CONTROLS_STATE>, tag <0xA0>, action : Initialize a control > 五月 22 11:05:13 - ERROR - The length of controls must not be null > 五月 22 11:05:13 - WARN - > org.apache.directory.api.ldap.codec.api.ResponseCarryingException: The > length of controls must not be null (Hexdump: 30 54 02 01 02 64 4D 04 38 63 > 6E 3D 4E 45 4F 4F 49 49 55 2C 6F 75 3D 45 38 34 38 34 30 34 2C 6F 75 3D 45 > 38 34 38 34 30 30 2C 6F 75 3D 45 38 34 2C 6F 75 3D 45 30 31 52 4F 4F 54 2C > 6F 3D 4D 4F 46 30 11 30 0F 04 02 63 6E 31 09 04 07 4E 45 4F 4F 49 49 55 A0 > 00 00 00 00 00 00 00 ...... ) > org.apache.mina.filter.codec.ProtocolDecoderException: > org.apache.directory.api.ldap.codec.api.ResponseCarryingException: The > length of controls must not be null (Hexdump: 30 54 02 01 02 64 4D 04 38 63 > 6E 3D 4E 45 4F 4F 49 49 55 2C 6F 75 3D 45 38 34 38 34 30 34 2C 6F 75 3D 45 > 38 34 38 34 30 30 2C 6F 75 3D 45 38 34 2C 6F 75 3D 45 30 31 52 4F 4F 54 2C > 6F 3D 4D 4F 46 30 11 30 0F 04 02 63 6E 31 09 04 07 4E 45 4F 4F 49 49 55 A0 > 00 00 00 00 00 00 00 00 00 00 ....) > at > org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:242) > ~[mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:47) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:765) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.IoFilterAdapter.messageReceived(IoFilterAdapter.java:109) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:417) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:410) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:710) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:664) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:653) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.polling.AbstractPollingIoProcessor.access$600(AbstractPollingIoProcessor.java:67) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1124) > [mina-core-2.0.7.jar:na] > at > org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64) > [mina-core-2.0.7.jar:na] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [na:1.8.0_181] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [na:1.8.0_181] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181] > Caused by: > org.apache.directory.api.ldap.codec.api.ResponseCarryingException: The > length of controls must not be null > at > org.apache.directory.api.ldap.codec.protocol.mina.LdapProtocolDecoder.decode(LdapProtocolDecoder.java:177) > ~[api-all-1.0.0-M22.jar:1.0.0-M22] > at > org.apache.directory.api.ldap.codec.protocol.mina.LdapProtocolDecoder.decode(LdapProtocolDecoder.java:94) > ~[api-all-1.0.0-M22.jar:1.0.0-M22] > at > org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:232) > ~[mina-core-2.0.7.jar:na] > ... 15 common frames omitted > 五月 22 11:05:13 - DEBUG - received a NoD, closing everything > 五月 22 11:05:13 - DEBUG - closing SearchFuture[msgId : 2, size : 0, > Canceled :false] > > I found that DER code end with A0 00, It won't appear if use OpenDJ, > > What can I do to fix this problem ? modify the eDir setting or something > else ? > > > Hello, > > > I never tested event-based connector with another LDAP Directory than > OpenLDAP, other directories may indeed not work. The only thing you can do > is trying to patch LSC code to make it work with Novell. > > -- > Clément Oudot | Identity Solutions Manager > clement.ou...@worteks.com > > Worteks | https://www.worteks.com > > _______________________________________________________________ > Ldap Synchronization Connector (LSC) - http://lsc-project.org > > lsc-users mailing list > lsc-users@lists.lsc-project.org > https://lists.lsc-project.org/cgi-bin/mailman/listinfo/lsc-users
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list lsc-users@lists.lsc-project.org https://lists.lsc-project.org/cgi-bin/mailman/listinfo/lsc-users