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