Sorry--looks like first one was a bit garbled due to html formatting.

--

Hello All,

I am trying to sync contact info between our Lotus Domino and AD ldap 
directories. I am able to bind to and apparently read both directories. I 
am using mail as a pivot attr. I want to sync and never delete or create 
new objects. However, when attempting to use an ldap.search in the DST 
directory (AD) to find the corresponding user, I am getting the following 
errors due to what seems a space between CN and BaseDN:

Jul 09 11:38:15 - INFO  - Starting sync for MySyncTask
Jul 09 11:38:15 - INFO  - Connecting to LDAP server ldap://<domino 
domain>:38
9/ o=our company as cn=<domino-admin>
Jul 09 11:38:16 - INFO  - Connecting to LDAP server 
ldap://WINDOWS-DOMAIN-CONTROLLER1:389/dc=windowsdomain,dc=com as 
CN=WindowsAdmin,OU=Blah,OU=Blah,DC=WindowsDomain,DC=com
Jul 09 11:38:16 - ERROR - Error while adding entry CN=John Doe,OU=Users,O
U=Country, in directory :javax.naming.InvalidNameException: Invalid name: 
CN=John Doe,OU=Users,OU=Country,,dc=WindowsDomain,dc=com; remaining name '
CN=John Doe,OU=Users,OU=Country,'
Jul 09 11:38:16 - ERROR - Error while synchronizing ID CN=John Doe,OU=Use
rs,OU=Country,: java.lang.Exception: Technical problem while applying 
modifica
tions to directory
dn: CN=John Doe,OU=Users,OU=Country,,dc=WindowsDomain,dc=com   <---Note 
the null space between commas
changetype: add
mail: [email protected]
cn: John Doe
telephonenumber: +11  123 4567

---

Below is my scrubbed lsc.properties file. Any ideas? Many many thanks in 
advance! 

Also...to confirm, is it the ' -c ' switch that causes entries to be 
deleted? For some reason I think I have nuked a few active directory 
machine accounts while testing (I have tried using cn instead of mail), 
whereas I thought condition.delete = false would have overridden...
--------

#########################################################################
# LDAP Synchronization Connector (LSC) - http://lsc-project.org         #
# Main configuration file                                               #
#########################################################################
# Most configuration parameters for LSC are in this file.
# All configuration files are located in this directory (etc)
#
# Configuration layout:
# - etc/ (this directory)
#       - lsc.properties (this file)
#               main configuration file
#       - logback.xml
#               configure logging to console, files and CSV/LDIF output
#       - sql-map-config.xml
#       - sql-map-config.d/
#               - <name>.xml
# 
# For ldap2ldap connectors, you only need to configure this file and
# logback.xml.
#########################################################################

##############################
# Source LDAP directory #
##############################
# This section is mandatory since all synchronizations currently go to an 
LDAP directory.

# Connection URL. This must include a valid LDAP context.
src.java.naming.provider.url = ldap://DOMINOSERVER:389/ o=<DOMINO DOMAIN>
# Authentication type.
# "none" causes an anonymous bind. "simple" performs a standard bind.
src.java.naming.security.authentication = simple

# Bind DN to use if authentication type is "simple"
src.java.naming.security.principal = cn=DOMINO-ADMIN

# Bind password to use if authentication type is "simple"
src.java.naming.security.credentials = secretpassword

# Follow referrals in searches?
# Allowed values are "ignore", "follow".
src.java.naming.referral = ignore

# Dereference aliases in searches?
# Allowed values are "never", "search", "find", "always"
src.java.naming.ldap.derefAliases = never

# Standard properties. These should not be changed.
src.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory
src.java.naming.ldap.version = 3




##############################
# Destination LDAP directory #
##############################
# This section is mandatory since all synchronizations currently go to an 
LDAP directory.

# Connection URL. This must include a valid LDAP context.
dst.java.naming.provider.url = 
ldap://WINDOWS-DOMAIN-CONTROLLER:389/dc=WINDOWS,dc=COM

# Authentication type.
# "none" causes an anonymous bind. "simple" performs a standard bind.
dst.java.naming.security.authentication = simple

# Bind DN to use if authentication type is "simple"
dst.java.naming.security.principal = 
CN=WINDOWSADMIN,OU=BLAH,OU=BLAH,DC=WINDOWSDOMAIN,DC=COM

# Bind password to use if authentication type is "simple"
dst.java.naming.security.credentials = windows-password

# Follow referrals in searches?
# Allowed values are "ignore", "follow".
dst.java.naming.referral = ignore

# Dereference aliases in searches?
# Allowed values are "never", "search", "find", "always"
dst.java.naming.ldap.derefAliases = never

# Standard properties. These should not be changed.
dst.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory
dst.java.naming.ldap.version = 3




#######################
# Tasks configuration #
#######################
# This section defines the synchronization tasks for LSC.

# List of defined tasks, seperated by commas
lsc.tasks = MySyncTask
lsc.tasks.MySyncTask.srcService = org.lsc.jndi.SimpleJndiSrcService
lsc.tasks.MySyncTask.dstService = org.lsc.jndi.SimpleJndiDstService

##########


lsc.tasks.MySyncTask.condition.create = false
lsc.tasks.MySyncTask.condition.update = true
lsc.tasks.MySyncTask.condition.delete = false
lsc.tasks.MySyncTask.condition.modrdn = false
lsc.tasks.MySyncTask.bean = org.lsc.beans.SimpleBean


### SOURCE ######### 

# Base DN for searches in the directory
#lsc.tasks.MySyncTask.srcService.baseDn = o=<domino domain>
lsc.tasks.MySyncTask.srcService.filterAll = (objectClass=inetOrgPerson)
lsc.tasks.MySyncTask.srcService.pivotAttrs = mail
lsc.tasks.MySyncTask.srcService.filterId = 
(&(objectClass=inetOrgPerson)(mail={mail}))
lsc.tasks.MySyncTask.srcService.attrs = telephonenumber mail cn


### DESTINATION #########

# Base DN for searches in the directory
#lsc.tasks.MySyncTask.dstService.baseDn=DC=WINDOWSDOMAIN,DC=COM
lsc.tasks.MySyncTask.dstService.filterAll = (objectClass=person)
lsc.tasks.MySyncTask.dstService.pivotAttrs = mail
lsc.tasks.MySyncTask.dstService.filterId = 
(&(objectClass=Person)(mail={mail}))
#lsc.tasks.MySyncTask.dstService.attrs = telephonenumber mail
lsc.tasks.MySyncTask.dn = ldap.search("","(mail=" + 
srcBean.getAttributeValueById("mail") + ")").get(0)
#lsc.tasks.MySyncTask.dn = ldap.search(&(objectClass=Person)(mail={mail}))
#lsc.tasks.MySyncTask.dn = "(cn=" + srcBean.getAttributeValueById("cn")



### END of SimpleJndiDstService parameters



# Construct a DN for new entries in the destination directory
# This is a JavaScript expression, and can access any utility functions 
and the srcBean.
# It should be relative to the LDAP context specified in 
dst.java.naming.provider.url
#lsc.tasks.MySyncTask.dn = "cn=" + 
srcBean.getAttributeValueById(&(objectClass=person)(mail={mail}))
#lsc.tasks.MySyncTask.condition.update = srcBean.getAttr('mail') > 
dstBean.getAttr('mail')

_______________________________________________________________
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