On 24/06/2009 09:40, Captain Hadoc wrote:
> Cl?ment OUDOT a ?crit :
>>> Yes, the use of employeeNumber as pivot attribute doesn't a good idee...
>>>
>>>
>>> I change it by uid attribute.
>>>
>>>
>>> I have changed too lsc.tasks.salaries.srcService.filterAll to have only
>>> entries of zimbra with a valid uid like this :
>>>
>>>
>>> lsc.tasks.salaries.srcService.filterAll =
>>> (&(objectClass=organizationalPerson) (uid=*))
>>>
>>>
>>> Now i have a problem when i run :
>>>
>>> ant lsc::synchronize -Dsynchronize.parameters="-c all -s all"
>>>
>>> the reponse is :
>>>
>>> Buildfile: build.xml
>>>
>>> lsc::init:
>>>
>>> lsc::prepare-env:
>>> [echo] Copying xml and properties files
>>> [copy] Copying 1 file to
>>> /home/pascal/lsc/lsc-salarie2-z2ldap/target/classes
>>>
>>> lsc::compile-resources:
>>> [echo] Compiling resources
>>>
>>> lsc::compile-app:
>>>
>>> lsc::synchronize:
>>> [java] 0 [main] WARN
>>> org.lsc.SimpleSynchronize.launchTask(SimpleSynchronize.java:230) -
>>> Starting sync for salaries
>>> [java] 586 [main] ERROR
>>> org.lsc.jndi.JndiServices.apply(JndiServices.java:554) - Error while
>>> modifying directory on entry
>>> uid=,ou=Salaries,o=fal44,o=cdr44,dc=centrederessources44,dc=org / [Add
>>> attribute: objectclass: top, shadowAccount, inetOrgPerson, Add
>>> attribute: sn: Maurieras, Add attribute: cn: Pascal Maurieras]
>>> [java] javax.naming.InvalidNameException:
>>> uid=,ou=Salaries,o=fal44,o=cdr44: [LDAP: error code 34 - invalid DN];
>>> remaining name 'uid=,ou=Salaries,o=fal44,o=cdr44'
>>> [java] at
>>> com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2932)
>>> [java] at
>>> com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2746)
>>> [java] at
>>> com.sun.jndi.ldap.LdapCtx.c_createSubcontext(LdapCtx.java:779)
>>> [java] at
>>> com.sun.jndi.toolkit.ctx.ComponentDirContext.p_createSubcontext(ComponentDirContext.java:319)
>>> [java] at
>>> com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.createSubcontext(PartialCompositeDirContext.java:248)
>>> [java] at
>>> javax.naming.directory.InitialDirContext.createSubcontext(InitialDirContext.java:183)
>>> [java] at org.lsc.jndi.JndiServices.apply(JndiServices.java:513)
>>> [java] at
>>> org.lsc.AbstractSynchronize.synchronize2Ldap(AbstractSynchronize.java:414)
>>> [java] at
>>> org.lsc.SimpleSynchronize.launchTask(SimpleSynchronize.java:280)
>>> [java] at
>>> org.lsc.SimpleSynchronize.launch(SimpleSynchronize.java:172)
>>> [java] at org.lsc.Launcher.run(Launcher.java:128)
>>> [java] at org.lsc.Launcher.main(Launcher.java:111)
>>> [java] 2213 [main] ERROR
>>> org.lsc.AbstractSynchronize.logActionError(AbstractSynchronize.java:475)
>>> - Erreur rencontr?e sur l'identifiant
>>> uid=,ou=Salaries,o=fal44,o=cdr44,dc=centrederessources44,dc=org:
>>> [java]
>>> [java] dn:
>>> uid=,ou=Salaries,o=fal44,o=cdr44,dc=centrederessources44,dc=org
>>> [java] changetype: add
>>> [java] objectclass: top
>>> [java] objectclass: shadowAccount
>>> [java] objectclass: inetOrgPerson
>>> [java] sn: Maurieras
>>> [java] cn: Pascal Maurieras
>>> [java]
>>> ...
>>>
>>>
>>> The method srcBean.getAttributeValueById("uid") seems doesn't work in
>>> lsc.tasks.salaries.dn ?
>>>
>>>
>>> My new conf is :
>>>
>>>
>>> lsc.tasks.salaries.type = ldap2ldap
>>> lsc.tasks.salaries.srcService.pivotAttrs = uid
>>> lsc.tasks.salaries.srcService.filterId =
>>> (&(objectClass=organizationalPerson)(uid={uid}))
>>> lsc.tasks.salaries.srcService.filterAll =
>>> (&(objectClass=organizationalPerson) (uid=*))
>>> lsc.tasks.salaries.srcService.baseDn = ou=people
>>> lsc.tasks.salaries.srcService.attrs = uid cn sn givenName mail objectClass
>>> lsc.tasks.salaries.srcService = org.lsc.jndi.SimpleJndiSrcService
>>> lsc.tasks.salaries.object = org.lsc.objects.organizationalPerson
>>> lsc.tasks.salaries.dstService.pivotAttrs = uid
>>> lsc.tasks.salaries.dstService.filterId =
>>> (&(objectClass=inetOrgPerson)(uid={uid}))
>>> lsc.tasks.salaries.dstService.filterAll = (objectClass=inetOrgPerson)
>>> lsc.tasks.salaries.dstService.baseDn = ou=Salaries,o=fal44,o=cdr44
>>> lsc.tasks.salaries.dstService.attrs = uid cn sn givenName mail objectClass
>>> lsc.tasks.salaries.dstService = org.lsc.jndi.SimpleJndiDstService
>>> lsc.tasks.salaries.dn = "uid=" + srcBean.getAttributeValueById("uid") +
>>> ",ou=Salaries,o=fal44,o=cdr44,dc=centrederessources44,dc=org"
>>> lsc.tasks.salaries.bean = org.lsc.beans.inetOrgPersonBean
>>> lsc.tasks = salaries
>>>
>>>
>>>
>>
>>
>>
>> Hello,
>>
>> it seems that srcBean.getAttributeValueById("uid") returns nothing, so DN
>> cannot be set. Are you sure your entry in source directory has a value in
>> uid?
>>
>> Cl?ment.
>>
>>
>>
>>
> Yes uid has a value. The entrie in source directory of zimbra is :
>
> dn: uid=pascal.maurieras,ou=people,dc=nordet,dc=org
> cn: Pascal Maurieras
> displayName: Pascal Maurieras
> givenName: Pascal
> mail: pascal.maurieras at nordet.org
> objectClass: organizationalPerson
> objectClass: zimbraAccount
> objectClass: amavisAccount
> sn: Maurieras
> uid: pascal.maurieras
> zimbraId: f3b8699c-1fe9-4450-a672-030c91fbfc22
> zimbraMailDeliveryAddress: pascal.maurieras at nordet.org
> zimbraMailHost: mail.nordet.org
> zimbraMailStatus: enabled
> zimbraMailTransport: lmtp:mail.nordet.org:7025
Hi,
This is a bit weird. Could you confirm that the uid value is being
returned by your source OpenLDAP by sending us some logs with loglevel
stats stats2 (just put that line in slapd.conf) ?
Thanks,
Jonathan
--
--------------------------------------------------------------
Jonathan Clarke - jonathan at phillipoux.net
--------------------------------------------------------------
Ldap Synchronization Connector (LSC) - http://lsc-project.org
--------------------------------------------------------------