2015-01-16 11:56 GMT+01:00 <[email protected]>:

> Hi,
>
> I have tried a lot but unable to fix the getonefilter issue. Please
> suggest.
>
> Lsc.xml contains:
>
>  <databaseSourceService>
>         <name>databaseConnectionService</name>
>         <connection reference="mySQL" />
>         <requestNameForList>getInetOrgPersonList</requestNameForList>
>         <requestNameForObject>getInetOrgPerson</requestNameForObject>
>         <requestNameForClean>getInetOrgPersonClean</requestNameForClean>
>       </databaseSourceService>
>       <ldapDestinationService>
>           <name>testad-dst-service</name>
>           <connection reference="testAD" />
>             <baseDn>dc=testrjil,dc=net</baseDn>
>             <pivotAttributes>
>               <string>cn</string>
>             </pivotAttributes>
>             <fetchedAttributes>
>                <string>cn</string>
>                <string>sAMAccountName</string>
>                <string>objectClass</string>
>             </fetchedAttributes>
>
> <getAllFilter><![CDATA[(objectClass=inetOrgPerson)]]></getAllFilter>
>
> <getOneFilter><![CDATA[(&(objectClass=inetOrgPerson)(cn={groupname}))]]></getOneFilter>
>       </ldapDestinationService>
>
>
> cat sql-map-config.d/InetOrgPerson.xml
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "
> http://www.ibatis.com/dtd/sql-map-2.dtd";>
>
> <sqlMap namespace="InetOrgPerson">
>
>         <select id="getInetOrgPerson" resultClass="java.util.HashMap"
> parameterClass="java.util.Map">
>                 Select
>                         groupname,samaccountname
>                 FROM group_info
>         </select>
>
>         <select id="getInetOrgPersonClean" resultClass="java.util.HashMap"
> parameterClass="java.util.Map">
>                 Select
>                         pers."GROUPNAME" AS groupname
>                 FROM group_info pers
>                 WHERE pers."GROUPNAME" LIKE #groupname#
>         </select>
>
>         <select id="getInetOrgPersonList" resultClass="java.util.HashMap">
>                 SELECT groupname
>                 FROM group_info
>         </select>
>
> </sqlMap>
>
> And in DB:
>
> mysql> select * from group_info;
> +----+-----------+----------------+
> | id | groupname | samaccountname |
> +----+-----------+----------------+
> |  1 | sqlgrp    | sqltestgrp     |
> +----+-----------+----------------+
> 1 row in set (0.00 sec)



Hi,

seems you "getInetOrgPerson" request is not good. It should use a WHERE
statement, to return only one group.

Try :


        <select id="getInetOrgPerson" resultClass="java.util.
>
> HashMap" parameterClass="java.util.Map">
>                 Select
>                         groupname,samaccountname
>                 FROM group_info WHERE groupname LIKE #groupname#

        </select>


And in the clean request, the WHERE clause must use the destination pivot:
WHERE groupname LIKE #cn#



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