blob: 2cad8694a0b065e84fee6fdb06bc77a8e6a3d3d9 [file] [log] [blame] [edit]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ldaptive="http://www.ldaptive.org/schema/spring-ext"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.ldaptive.org/schema/spring-ext http://www.ldaptive.org/schema/spring-ext.xsd">
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<bean class="org.ldaptive.beans.spring.convert.StringToDurationConverter"/>
<bean class="org.ldaptive.beans.spring.convert.DurationToStringConverter"/>
</set>
</property>
</bean>
<ldaptive:aggregate-pooled-search-executor baseDn="${baseDn}" />
<ldaptive:pooled-connection-factory
ldapUrl="${ldapUrl}"
useStartTLS="false"
blockWaitTime="PT5S"
minPoolSize="5"
maxPoolSize="10"
validatePeriodically="true"
/>
<!-- SEARCH CONFIG -->
<!-- searches are defined in the following section
A bean is defined to handle a specific number of query terms.
When a query arrives the searches are executed that match the number of
terms entered.
The following syntax is used to match query terms:
{term1} == the first query term entered
{term2} == the second query term entered, and so forth
{initial1} == the first letter of the first query term entered
in this manner you can construct search filters such as:
(givenName={term1})(middleName={initial2}*)(sn={term3}) -->
<!-- ONE TERM QUERIES -->
<bean id="oneTermSearch" class="org.ldaptive.templates.SearchTemplates">
<constructor-arg>
<list>
<!-- phone number search -->
<!-- note that openldap removes dashes and spaces for all phone number queries -->
<value>(telephoneNumber={term1})</value>
<value>(telephoneNumber=*{term1})</value>
<!-- name search -->
<value>(|(givenName={term1})(sn={term1}))</value>
<value>(|(givenName={term1}*)(sn={term1}*))</value>
<value>(|(givenName=*{term1}*)(sn=*{term1}*))</value>
<!-- email search -->
<value>(mail={term1})</value>
<value>(mail={term1}*)</value>
<value>(mail=*{term1}*)</value>
</list>
</constructor-arg>
</bean>
<!-- TWO TERM QUERIES -->
<bean id="twoTermSearch" class="org.ldaptive.templates.SearchTemplates">
<constructor-arg>
<list>
<!-- name search -->
<value>(&amp;(givenName={term1})(sn={term2}))</value>
<value>(cn={term1} {term2})</value>
<value>(&amp;(givenName={term1}*)(sn={term2}*))</value>
<value>(cn={term1}* {term2}*)</value>
<value>(&amp;(givenName=*{term1}*)(sn=*{term2}*))</value>
<value>(cn=*{term1}* *{term2}*)</value>
<!-- initial search -->
<value>(|(&amp;(givenName={initial1}*)(sn={term2}))(&amp;(middleName={initial1}*)(sn={term2})))</value>
<!-- last name search -->
<value>(sn={term2})</value>
</list>
</constructor-arg>
</bean>
<!-- THREE TERM QUERIES -->
<bean id="threeTermSearch" class="org.ldaptive.templates.SearchTemplates">
<constructor-arg>
<list>
<!-- name search -->
<value>(|(&amp;(givenName={term1})(sn={term3}))(&amp;(givenName={term2})(sn={term3})))</value>
<value>(|(cn={term1} {term2} {term3})(cn={term2} {term1} {term3}))</value>
<value>(|(&amp;(givenName={term1}*)(sn={term3}*))(&amp;(givenName={term2}*)(sn={term3}*)))</value>
<value>(|(cn={term1}* {term2}* {term3}*)(cn={term2}* {term1}* {term3}*))</value>
<value>(|(&amp;(givenName=*{term1}*)(sn=*{term3}*))(&amp;(givenName=*{term2}*)(sn=*{term3}*)))</value>
<value>(|(cn=*{term1}* *{term2}* *{term3}*)(cn=*{term2}* *{term1}* *{term3}*))</value>
<!-- initial search -->
<value>(|(&amp;(givenName={term1})(middleName={initial2}*)(sn={term3}))(&amp;(givenName={term2})(middleName={initial1}*)(sn={term3})))</value>
<value>(|(&amp;p(givenName={initial1}*)(middlename={initial2}*)(sn={term3}))(&amp;(givenName={initial2}*)(middleName={initial1}*)(sn={term3})))</value>
<!-- last name search -->
<value>(sn={term3})</value>
</list>
</constructor-arg>
</bean>
</beans>