2014-12-03 14:55 GMT+01:00 FOUCHET, Alexandre <
[email protected]>:

>  Hi,
>
>
>
> I am facing a problem when I try to update a user, I think LSC tries to
> add a new entry instead of just updating the already existing one :
>
> déc. 03 14:27:15 - ERROR - Error while adding entry
> uid=fr.lee.sin,dmdName=users,dmdName=portal,dmdName=applications,dc=cap,dc=ad
> in directory :javax.naming.NameAlreadyBoundException: [LDAP: error code 68
> - Entry Already Exists]; remaining name
> 'uid=fr.lee.sin,dmdName=users,dmdName=portal,dmdName=applications,dc=cap,dc=ad
>
>                 déc. 03 14:27:15 - ERROR - Error while synchronizing ID
> uid=fr.lee.sin,dmdName=users,dmdName=portal,dmdName=applications,dc=cap,dc=ad:
> java.lang.Exception: Technical problem while applying modifications to the
> destination
>
>                 déc. 03 14:27:15 - 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.1.jar:na]
>
>                   at
> org.lsc.SynchronizeTask.run(AbstractSynchronize.java:689)
> [lsc-core-2.1.1.jar:na]
>
>                   at
> java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
> [na:1.7.0_45]
>
>                   at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> [na:1.7.0_45]
>
>                   at java.lang.Thread.run(Unknown Source) [na:1.7.0_45]
>
>
>
>
>
> I am fairly sure it is due to me not using getOneFilter correctly. Could
> someone please help me out ?
>
>
>
> Config :
>
>
>
> <ldapSourceService>
>
>         <name>ldap-src-service-com1</name>
>
>         <connection reference="ldap-src-conn" />
>
>         <baseDn>dc=appli,dc=fr</baseDn>
>
>         <pivotAttributes>
>
>                                <string>uid</string>
>
>                                <string>jSprintEmail</string>
>
>                                <string>sn</string>
>
>         </pivotAttributes>
>
>         <fetchedAttributes>
>
>                                  <string>objectClass</string>
>
> <string>cn</string>
>
>                                  <string>jUserActive</string>
>
> <string>sn</string>
>
>                                  <string>title</string>
>
>   <string>uid</string>
>
>                                  <string>userPassword</string>
>
>                                  <string>c</string>
>
>                                  <string>givenName</string>
>
>                                  <string>jBadPasswordCount</string>
>
>                                  <string>jSprintEmail</string>
>
>                                 <string>mail</string>
>
>         </fetchedAttributes>
>
>
> <getAllFilter>(&amp;(objectClass=jPortalUser)(memberOf=cn=com1,dmdName=communities,dmdName=groups,dmdName=portal,dmdName=applications,dc=cap,dc=ad,dc=appli,dc=fr))</getAllFilter>
>
>
> <getOneFilter>(&amp;(objectClass=jPortalUser)(uid={uid}))</getOneFilter>
>
>
> <cleanFilter>(&amp;(objectClass=jPortalUser)(memberOf=cn=com1,dmdName=communities,dmdName=groups,dmdName=portal,dmdName=applications,dc=cap,dc=ad,dc=appli,dc=fr)(uid={uid}))</cleanFilter>
>
>       </ldapSourceService>
>
>
>
>
>
> <ldapDestinationService>
>
>         <connection reference="ldap-dst-conn-com1" />
>
>         <baseDn>dc=gouv,dc=fr</baseDn>
>
>         <pivotAttributes>
>
>            <string>uid</string>
>
>        </pivotAttributes>
>
>         <fetchedAttributes>
>
>                                    <string>objectClass</string>
>
> <string>cn</string>
>
>                                  <string>jUserActive</string>
>
> <string>sn</string>
>
>                                  <string>title</string>
>
>   <string>uid</string>
>
>                                  <string>userPassword</string>
>
>                                  <string>c</string>
>
>                                  <string>givenName</string>
>
>                                  <string>jBadPasswordCount</string>
>
>                                  <string>jSprintEmail</string>
>
>                                 <string>mail</string>
>
>         </fetchedAttributes>
>
>         <getAllFilter>(&amp;(objectClass=jPortalUser))</getAllFilter>
>
>
> <getOneFilter>(&amp;(objectClass=jPortalUser)(uid={uid})(jSprintEmail={jSprintEmail})(sn={sn}))</getOneFilter>
>
>       </ldapDestinationService>
>
>
>
> […]
>
> <conditions>
>
>                 <create>true</create>
>
>                 <update>true</update>
>
>                 <delete>true</delete>
>
>                 <changeId>false</changeId>
>
> </conditions>
>
>
>
>
>
>
>


I think you just need to use uid as pivot attributes. So use this in
getOneFilter for your destination:

 <getOneFilter>(&amp;(objectClass=jPortalUser)(uid={uid}))</getOneFilter>

It seems that the filter with jSprintEmail and sn does not return any
entry, so LSC tries to add the entry.



Clément.
_______________________________________________________________
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