Thank you.
That helped a lot. Really hope you guys are still willing to help me get over
the last hurdle or two.
So I recreated my config file after reading up on the links provided.
I also had to go verify what I want from AD and what I need to be in OpenLDAP
for it to work.
Now I am at least reading data but I don’t think my Filters work yet.
If I use the filter like (&(objectClass=person)(telephoneNumber=*)) on the AD
server using a program like LDAPAdmin, I get only valid results.
Any idea how I can incorporate that into the config file OR does it look like
its working in the LOG file ill add at the bottom?(Just curious because there
are a lot of errors.)
Also I'm not sure why my log shows errors about writing to OPENLDAP.
<?xml version="1.0" ?>
<!--
In the following file, comments are describing each node. Elements are
referenced through XPath expression, whereas attributes are prefixed
with
'@'
//lsc Root node of the XML configuration file
@xmlns XML Schema validation is not ready yet (Reserved for futur use)
@id optional, added by XML API
@revision mandatory, used by the Web Administration Interface to version
this file
-->
<lsc xmlns="http://lsc-project.org/XSD/lsc-core-2.1.xsd" revision="0">
<!-- ./connections Connections list node, must contain at least two
connections -->
<connections>
<!--
./connection Connection node, include definition of the required
parameters.
Depending on the connection type,
properties vary.
Existing class type are :
ldapConnection, databaseConnnection
Plugins also provides : nisConnection,
jndiExecDstConnection
-->
<ldapConnection>
<name>ldap-src-conn</name>
<!-- ./url mandatory, the JNDI URL -->
<url>ldap://10.18.1.60:389/dc=nlb,dc=org,dc=za</url>
<!-- ./username mandatory, the DN to bind with -->
<username>CN=Christiaan
Louw,OU=Users,OU=Pretoria,DC=nlb,DC=org,DC=za</username>
<!-- ./password mandatory, credentials to bind with -->
<password>Read@2020</password>
<!-- ./authentication mandatory, must contain either ANONYMOUS, SIMPLE, SASL,
GSSAPI or DIGEST_MD5 -->
<authentication>SIMPLE</authentication>
<!-- ./referral mandatory, must contain either IGNORE, THROUGH, THROW or
FOLLOW -->
<referral>IGNORE</referral>
<!-- ./derefAliases mandatory, must contain either NEVER, SEARCH, FIND, ALWAYS
-->
<derefAliases>NEVER</derefAliases>
<!-- ./version mandatory, must contain either VERSION_2, VERSION_3 -->
<version>VERSION_3</version>
<!-- ./pageSize optional, specify the paged size when searching -->
<pageSize>-1</pageSize>
<!-- ./factory mandatory, points to LDAP Context Factory,
com.sun.jndi.ldap.LdapCtxFactory for a SUN JDK -->
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<!-- ./tlsActivated optional, specify if SSL/TLS is activated to connect to
the LDAP server -->
<tlsActivated>false</tlsActivated>
</ldapConnection>
<ldapConnection>
<name>ldap-dst-conn</name>
<!-- ./url mandatory, the JNDI URL -->
<url>ldap://10.10.10.90:389/dc=nlb,dc=org,dc=za</url>
<!-- ./username mandatory, the DN to bind with -->
<username>cn=admin,dc=nlb,dc=org,dc=za</username>
<!-- ./password mandatory, credentials to bind with -->
<password>Write@2020</password>
<!-- ./authentication mandatory, must contain either ANONYMOUS, SIMPLE, SASL,
GSSAPI or DIGEST_MD5 -->
<authentication>SIMPLE</authentication>
<!-- ./referral mandatory, must contain either IGNORE, THROUGH, THROW or
FOLLOW -->
<referral>IGNORE</referral>
<!-- ./derefAliases mandatory, must contain either NEVER, SEARCH, FIND, ALWAYS
-->
<derefAliases>NEVER</derefAliases>
<!-- ./version mandatory, must contain either VERSION_2, VERSION_3 -->
<version>VERSION_3</version>
<!-- ./pageSize optional, specify the paged size when searching -->
<pageSize>-1</pageSize>
<!-- ./factory mandatory, points to LDAP Context Factory,
com.sun.jndi.ldap.LdapCtxFactory for a SUN JDK -->
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<!-- ./tlsActivated optional, specify if SSL/TLS is activated to connect to
the LDAP server -->
<tlsActivated>false</tlsActivated>
</ldapConnection>
</connections>
<!-- ./audits Audits list node -->
<!-- ./tasks Task list node, must contain at least one task -->
<tasks>
<!-- ./task Task node, this is the main node, in which synchronization is
defined -->
<task>
<!-- ./name mandatory task node this is the main node, in which
synchronization is defined -->
<name>MySyncTask</name>
<!-- ./bean optional bean node, default to org.lsc.beans.SimpleBean, define
the pivot object used to store datasets and values -->
<bean>org.lsc.beans.SimpleBean</bean>
<!-- ./sourceService mandatory node containing definition of the source
service settings
possible builtin types are :
databaseSourceService, ldapSourceService
Plugins also provides:
syncreplSourceService, nisSourceServic
-->
<ldapSourceService>
<!-- A ldap source service will have to contain at least a name, a
connection reference, a base DN, a filter to list
entries, a filter to get a particular entry, a list of
pivot attributes and a list of fetched attributes -->
<name>ldap-src-service</name>
<connection reference="ldap-src-conn" />
<!-- ./baseDn This mandatory node provide the directory base branch that
will be used to look for entries (list and get) -->
<baseDn>dc=nlb,dc=org,dc=za</baseDn>
<!-- ./pivotAttributes This mandatory node must include string nodes with
attributes name that will be used with their values
as pivot datasets (used to get the corresponding entry
and to identify the counter-part object, here in the source database
used during the clean phase to delete the corresponding
entry if no corresponding object is found)-->
<pivotAttributes>
<string>sAMAccountName</string>
<string>ipPhone</string>
</pivotAttributes>
<!-- ./fetchedAttributes This mandatory node must include string nodes with
attributes name that will fill the full object.
In a LDAP destination service, fetched attributes will
be written to the target directory, whereas source provided datasets
that are not listed their will silently be canceled,
i.e. not synchronized with the directory. -->
<fetchedAttributes>
<string>objectclass</string>
<string>cn</string>
<string>ipPhone</string>
<string>mobile</string>
<string>telephoneNumber</string>
<string>givenName</string>
<string>initials</string>
<string>sAMAccountName</string>
<string>displayName</string>
<string>sn</string>
</fetchedAttributes>
<!-- ./getAllFilter This mandatory node must include the filter that will be
used to list all target objects. In a LDAP destination service
this value is used during the clean
phase to look for every object that it has a corresponding object in the source
database -->
<getAllFilter><![CDATA[(&(objectClass=person)(telephoneNumber=*))]]></getAllFilter>
<!-- ./getOneFilter This mandatory node must include the filter that will be
used to get a particular entry. In a LDAP destination service
this value is used during the
synchronization phase to get the object - in conjonction with fetchedAttributes
to synchronize them -->
<getOneFilter><![CDATA[(&(objectClass=person)(sAMAccountName={sAMAccountName})(ipPhone={ipPhone}))]]></getOneFilter>
<cleanFilter><![CDATA[(&(objectClass=person)(sAMAccountName={uid})(ipPhone={homePhone}))]]></cleanFilter>
</ldapSourceService>
<ldapDestinationService>
<!-- A ldap destination service will have to contain at least a name, a
connection reference, a base DN, a filter to list
entries, a filter to get a particular entry, a list of
pivot attributes and a list of fetched attributes -->
<name>ldap-dst-service</name>
<connection reference="ldap-dst-conn" />
<!-- ./baseDn This mandatory node provide the directory base branch that
will be used to look for entries (list and get) -->
<baseDn>ou=nlc,dc=nlb,dc=org,dc=za</baseDn>
<!-- ./pivotAttributes This mandatory node must include string nodes with
attributes name that will be used with their values
as pivot datasets (used to get the corresponding entry
and to identify the counter-part object, here in the source database
used during the clean phase to delete the corresponding
entry if no corresponding object is found)-->
<pivotAttributes>
<string>uid</string>
<string>homePhone</string>
</pivotAttributes>
<!-- ./fetchedAttributes This mandatory node must include string nodes with
attributes name that will fill the full object.
In a LDAP destination service, fetched attributes will
be written to the target directory, whereas source provided datasets
that are not listed their will silently be canceled,
i.e. not synchronized with the directory. -->
<fetchedAttributes>
<string>objectclass</string>
<string>cn</string>
<string>homePhone</string>
<string>mobile</string>
<string>telephoneNumber</string>
<string>givenName</string>
<string>initials</string>
<string>uid</string>
<string>displayName</string>
<string>sn</string>
</fetchedAttributes>
<!-- ./getAllFilter This mandatory node must include the filter that will be
used to list all target objects. In a LDAP destination service
this value is used during the clean
phase to look for every object that it has a corresponding object in the source
database -->
<getAllFilter><![CDATA[(objectClass=inetOrgPerson)]]></getAllFilter>
<!-- ./getOneFilter This mandatory node must include the filter that will be
used to get a particular entry. In a LDAP destination service
this value is used during the
synchronization phase to get the object - in conjonction with fetchedAttributes
to synchronize them -->
<getOneFilter><![CDATA[(&(objectClass=inetOrgPerson)(uid={sAMAccountName})(homePhone={ipPhone}))]]></getOneFilter>
</ldapDestinationService>
<!-- ./syncOptions This mandatory node describes how to handle the various
situations encountered while synchronizing datasets.
It must contains a main identifier construction rule
and a default policy.
It may contains synchronization conditions, a default
delimiter and datasets synchronization rules (attribute nodes) -->
<propertiesBasedSyncOptions>
<!-- ./mainIdentifier This mandatory node must contain a string Javascript
expression that will enforce the object main identifier.-->
<mainIdentifier>"uid=" +
srcBean.getDatasetFirstValueById("sAMAccountName") +
",ou=NLC,dc=nlb,dc=org,dc=za"</mainIdentifier>
<!-- ./defaultDelimiter This mandatory node must contain a string Javascript
expression that will enforce the object main identifier.-->
<defaultDelimiter>;</defaultDelimiter>
<!-- ./defaultPolicy This mandatory node must contain a string Javascript
expression that will enforce the object main identifier.-->
<defaultPolicy>FORCE</defaultPolicy>
<!-- ./conditions This optional node may contain one or more of the four
node : create, update, delete and changeId -->
<conditions>
<!-- ./create This optional node may contain a boolean Javascript
expression that will indicate whenever a new entry must be created or not -->
<create>true</create>
<!-- ./update This optional node may contain a boolean Javascript
expression that will indicate whenever a existing entry must be updated or not
-->
<update>true</update>
<!-- ./delete This optional node may contain a boolean Javascript
expression that will indicate whenever a existing entry must be deleted or not
-->
<delete>true</delete>
<!-- ./changeId This optional node may contain a boolean Javascript
expression that will indicate whenever an existing object main identifier must
be changed or not -->
<changeId>true</changeId>
</conditions>
<!-- ./dataset This multi-valued node may contain a structure that will
describe how to synchronize the corresponding dataset -->
<dataset>
<name>cn</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("cn")</string>
</defaultValues>
</dataset>
<dataset>
<name>KEEP</name>
<policy>FORCE</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("mobile")</string>
</defaultValues>
</dataset>
<dataset>
<name>ipPhone</name>
<policy>FORCE</policy>
<forceValues>
<string>srcBean.getDatasetFirstValueById("homePhone")</string>
</forceValues>
</dataset>
<dataset>
<name>telephoneNumber</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("telephoneNumber")</string>
</defaultValues>
</dataset>
<dataset>
<name>givenName</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("givenName")</string>
</defaultValues>
</dataset>
<dataset>
<name>initials</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("initials")</string>
</defaultValues>
</dataset>
<dataset>
<name>displayName</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("displayName")</string>
</defaultValues>
</dataset>
<dataset>
<name>uid</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("sAMAccountName")</string>
</defaultValues>
</dataset>
<dataset>
<name>sn</name>
<policy>KEEP</policy>
<defaultValues>
<string>srcBean.getDatasetFirstValueById("sn")</string>
</defaultValues>
</dataset>
<dataset>
<name>objectclass</name>
<policy>FORCE</policy>
<forceValues>
<string>"interOrgPerson"</string>
<string>"top"</string>
</forceValues>
</dataset>
</propertiesBasedSyncOptions>
</task>
</tasks>
<!-- ./security This mandatory node contains the security settings used by LSC
-->
<security>
<!-- ./encryption This optional node contains the encryption settings -->
<encryption>
<!-- ./keyfile This optional node contains the keyfile location -->
<keyfile>etc/lsc.key</keyfile>
<!-- ./algorithm This optional node contains the encryption algorithm -->
<algorithm>AES</algorithm>
<!-- ./strength This optional node contains the algorithm key length -->
<strength>128</strength>
</encryption>
</security>
</lsc>
Here is a short log: (I stopped the process mid-way)
2019/03/20 21:40:58 [lsc] Starting LSC
Mar 20 21:41:01 - INFO - Logging configuration successfully loaded from
/etc/lsc/logback.xml
Mar 20 21:41:01 - INFO - LSC configuration successfully loaded from /etc/lsc/
Mar 20 21:41:02 - INFO - Connecting to LDAP server
ldap://10.10.10.90:389/dc=nlb,dc=org,dc=za as cn=admin,dc=nlb,dc=org,dc=za
Mar 20 21:41:02 - INFO - Connecting to LDAP server
ldap://10.18.1.60:389/dc=nlb,dc=org,dc=za as CN=Christiaan
Louw,OU=Users,OU=Pretoria,DC=nlb,DC=org,DC=za
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - DEBUG - Unsupported scripting engine: Oracle Nashorn
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
List of attributes considered for writing in destination: [uid,
telephoneNumber, initials, displayName, homePhone, givenName, mobile, cn, sn,
objectclass]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" will not be written to the destination
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "telephoneNumber" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "telephoneNumber" with values [01234567]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" will not be written to the destination
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "displayName" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "displayName" with values [Chupo Chu]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" is in FORCE status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" will not be written to the destination
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "givenName" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "givenName" with values [Chupo]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "mobile" is in FORCE status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "mobile" with values [0784865017]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "cn" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "cn" with values [Chupo Chu]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "sn" is in KEEP status
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "sn" with values [Chu]
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "objectclass" is in FORCE status
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - DEBUG - In object "uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "objectclass" with values [interOrgPerson, top]
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Error while adding entry
uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za in directory
:javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 -
objectclass: value #0 invalid per syntax]; remaining name 'uid=Chupo,ou=NLC'
Mar 20 21:41:08 - ERROR - Error while synchronizing ID
uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za: java.lang.Exception: Technical problem
while applying modifications to the destination
Mar 20 21:41:08 - DEBUG - java.lang.Exception: Technical problem while applying
modifications to the destination
java.lang.Exception: Technical problem while applying modifications to the
destination
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:783)
[lsc-core-2.1.4.jar:na]
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:689)
[lsc-core-2.1.4.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]
# Wed Mar 20 21:41:08 SAST 2019
dn: uid=Chupo,ou=NLC,dc=nlb,dc=org,dc=za
changetype: add
telephoneNumber: 01234567
displayName: Chupo Chu
givenName: Chupo
mobile: 0784865017
cn: Chupo Chu
sn: Chu
objectclass: interOrgPerson
objectclass: top
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:08 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:09 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:09 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:09 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - DEBUG - Unsupported scripting engine: Oracle Nashorn
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
List of attributes considered for writing in destination: [uid,
telephoneNumber, initials, displayName, homePhone, givenName, mobile, cn, sn,
objectclass]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" will not be written to the destination
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "telephoneNumber" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "telephoneNumber" with values [0875496]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" will not be written to the destination
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "displayName" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "displayName" with values [Khumbi Nini]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" is in FORCE status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" will not be written to the destination
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "givenName" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "givenName" with values [Khumbi]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "mobile" is in FORCE status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "mobile" will not be written to the destination
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "cn" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "cn" with values [Khumbi Nini]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "sn" is in KEEP status
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "sn" with values [Nini]
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "objectclass" is in FORCE status
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:10 - DEBUG - In object "uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "objectclass" with values [interOrgPerson, top]
Mar 20 21:41:10 - ERROR - Error while adding entry
uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za in directory
:javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 -
objectclass: value #0 invalid per syntax]; remaining name 'uid=Khumbin,ou=NLC'
Mar 20 21:41:10 - ERROR - Error while synchronizing ID
uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za: java.lang.Exception: Technical problem
while applying modifications to the destination
Mar 20 21:41:10 - DEBUG - java.lang.Exception: Technical problem while applying
modifications to the destination
java.lang.Exception: Technical problem while applying modifications to the
destination
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:783)
[lsc-core-2.1.4.jar:na]
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:689)
[lsc-core-2.1.4.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]
# Wed Mar 20 21:41:10 SAST 2019
dn: uid=Khumbin,ou=NLC,dc=nlb,dc=org,dc=za
changetype: add
telephoneNumber: 0875496
displayName: Khumbi Nini
givenName: Khumbi
cn: Khumbi Nini
sn: Nini
objectclass: interOrgPerson
objectclass: top
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:12 - DEBUG - Unsupported scripting engine: Oracle Nashorn
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
List of attributes considered for writing in destination: [uid,
telephoneNumber, initials, displayName, homePhone, givenName, mobile, cn, sn,
objectclass]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "uid" will not be written to the destination
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "telephoneNumber" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "telephoneNumber" with values [0318174410]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "initials" will not be written to the destination
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "displayName" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "displayName" with values [Baba Maba]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" is in FORCE status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "homePhone" will not be written to the destination
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "givenName" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "givenName" with values [Baba]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "mobile" is in FORCE status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "mobile" will not be written to the destination
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "cn" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "cn" with values [Baba Maba]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "sn" is in KEEP status
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "sn" with values [Maba]
Mar 20 21:41:12 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Attribute "objectclass" is in FORCE status
Mar 20 21:41:12 - ERROR - Synchronization aborted because no source object has
been found !
Mar 20 21:41:13 - DEBUG - In object "uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za":
Adding attribute "objectclass" with values [interOrgPerson, top]
Mar 20 21:41:13 - ERROR - Error while adding entry
uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za in directory
:javax.naming.directory.InvalidAttributeValueException: [LDAP: error code 21 -
objectclass: value #0 invalid per syntax]; remaining name 'uid=BabaM,ou=NLC'
Mar 20 21:41:13 - ERROR - Error while synchronizing ID
uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za: java.lang.Exception: Technical problem
while applying modifications to the destination
Mar 20 21:41:13 - DEBUG - java.lang.Exception: Technical problem while applying
modifications to the destination
java.lang.Exception: Technical problem while applying modifications to the
destination
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:783)
[lsc-core-2.1.4.jar:na]
at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:689)
[lsc-core-2.1.4.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]
# Wed Mar 20 21:41:13 SAST 2019
dn: uid=BabaM,ou=NLC,dc=nlb,dc=org,dc=za
changetype: add
telephoneNumber: 0325478
displayName: Baba Maba
givenName: Baba
cn: Baba Maba
sn: Maba
objectclass: interOrgPerson
objectclass: top
Mar 20 21:41:16 - ERROR - All entries: 187, to modify entries: 6, successfully
modified entries: 0, errors: 187
2019/03/20 21:41:16 [lsc] LSC finished running
Kind Regards,
-----Original Message-----
From: lsc-users [mailto:[email protected]] On Behalf Of
Clément OUDOT
Sent: Wednesday, 20 March 2019 15:32
To: [email protected]
Subject: Re: [lsc-users] Sync AD to LDAP
Le 20/03/2019 à 12:39, Christiaan Louw a écrit :
> Hi
>
> Now it seems to run but it's not finding any data so I guess my filters and
> attributes are not correct.
>
> Can you see if its correct? I have tried a bunch of stuff but this is what I
> made looking at the Documentations.
As previously said by Soisik, you need to adapte attributes and filters so that
the LDAP query done by LSC returns entries.
I see in your configuration that you use this filter:
(&(objectClass=person)(telephoneNumber=*)). Are you sure it catches entires
in source.
I also see your are using {key} in getOneFilter that are not defined as pivot
attributes. This can't work.
You can learn LSC bascis on this page:
https://lsc-project.org/documentation/latest/basics
You can also read this tutorial, even if in your case, the source will be AD
and the destination OpenLDAP :
https://lsc-project.org/documentation/tutorial/openldaptoactivedirectory
--
Clément Oudot | Identity Solutions Manager
[email protected]
Worteks | https://www.worteks.com
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
https://lists.lsc-project.org/cgi-bin/mailman/listinfo/lsc-users
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-users mailing list
[email protected]
https://lists.lsc-project.org/cgi-bin/mailman/listinfo/lsc-users