Issue #35 has been updated by Clément OUDOT.
I have done some tests about this today.
I achieve to use different pivots for the synchronization phase. This works but
need to be documented, because the pivot is not used the same way in the source
and in the destination. For example on my test:
* Source
* pivotAttributes: @uid@
* getOneFilter: @(&(objectClass=person)(uid={uid}))@
* Destination
* pivotAttributes: @initials@
* getOneFilter: @(&(objectClass=person)(initials={uid}))@
We see the the source pivot is used in source filter and destination filter.
But I got a problem with the clean phase. I configured this in the source
service: @(&(objectClass=person)(uid={initials}))@, and LSC deleted all my
entries in the destination. Looking to OpenLDAP logs, I see that the search
done is:
<pre>
4f912126 conn=1043 op=4 SRCH base="initials=agent.b,ou=people,ou=XXX" scope=1
deref=0 filter="(objectClass=*)"
4f912126 conn=1043 op=4 SEARCH RESULT tag=101 err=0 nentries=0 text=
4f912126 conn=1043 op=5 DEL dn="initials=agent.b,ou=people,ou=XXX"
</pre>
The scope is bad: it should be 0 and not 1. I precise I use
asyncLdapSourceService, but this clean phase works well with the same picot in
source and destination...
Any idea?
----------------------------------------
Bug #35: Cannot use different pivotAttrs between source and destination
http://tools.lsc-project.org/issues/35
Author: Clément OUDOT
Status: Feedback
Priority: High
Assigned to: Clément OUDOT
Category: Core
Target version: 2.0
Problem in version:
Hello,
This configuration fails:
<pre>
lsc.tasks.user.dstService = org.lsc.jndi.SimpleJndiDstService
lsc.tasks.user.dstService.attrs = uid cn sn givenName mail telephoneNumber
sAMAccountName userPrincipalName userAccountControl unicodePwd displayName
objectClass
lsc.tasks.user.dstService.baseDn = ou=users
lsc.tasks.user.dstService.filterAll = (objectClass=user)
lsc.tasks.user.dstService.filterId =
(&(objectClass=user)(sAMAccountName={loginname}))
lsc.tasks.user.dstService.pivotAttrs = samaccountname
lsc.tasks.user.srcService = org.lsc.jndi.SimpleJndiSrcService
lsc.tasks.user.srcService.attrs = uid cn mail telephoneNumber loginName
lsc.tasks.user.srcService.baseDn = ou=People
lsc.tasks.user.srcService.filterAll = (objectClass=Person)
lsc.tasks.user.srcService.filterId =
(&(objectClass=Person)(loginName={samaccountname}))
lsc.tasks.user.srcService.pivotAttrs = loginname
</pre>
LSC shows errors as:
<pre>
[java] 212 [main] ERROR
org.lsc.AbstractSynchronize.synchronize2Ldap(AbstractSynchronize.java:303) -
Unable to get object for id=uid=1A5AF9F102F8DB315D776F,ou=People,o=linagora=null
[java] 219 [main] ERROR
org.lsc.AbstractSynchronize.synchronize2Ldap(AbstractSynchronize.java:303) -
Unable to get object for id=uid=1A5AF9F102F8DB315D776E,ou=People,o=linagora=null
</pre>
And OpenLDAP (source) shows:
<pre>
conn=21 op=33 SRCH base="ou=People,o=linagora" scope=2 deref=0
filter="(&(objectClass=Person)(loginName={samaccountname}))"
conn=21 op=33 SRCH attr=uid cn mail telephonenumber loginname
<= bdb_equality_candidates: (loginName) not indexed
conn=21 op=33 SEARCH RESULT tag=101 err=0 nentries=0 text=
</pre>
The synchronization works great with "uid" as source and destination pivotAttrs
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://tools.lsc-project.org/my/account
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org
lsc-dev mailing list
[email protected]
http://lists.lsc-project.org/listinfo/lsc-dev