LDAPConnector with springResources file

Youssef GHORBAL youssef.ghorbal at pasteur.fr
Thu Apr 21 20:30:31 EDT 2016


Hello,

	(IdP 3.2.1)

	I’m trying to configure an LDAPConnector with a springRessources file using the example provided here :
	https://wiki.shibboleth.net/confluence/display/IDP30/LDAPConnector

	The IdP reloads correctly (with no errors) but attributes resolving does not provide any results.

	What I’ve see in the logs is :

2016-04-22 02:02:03,241 - DEBUG [net.shibboleth.idp.attribute.resolver.dc.ldap.impl.TemplatedExecutableSearchFilterBuilder:?] - Template text (|(sAMAccountName=$requestContext.principalName)(userPrincipalName=$requestContext.principalName)) yields (|(sAMAccountName=$requestContext.principalName)(userPrincipalName=$requestContext.principalName))

	While using the custom syntax everything is working and I get :

2016-04-22 02:17:29,398 - DEBUG [net.shibboleth.idp.attribute.resolver.dc.ldap.impl.TemplatedExecutableSearchFilterBuilder:?] - Template text (|(sAMAccountName=$requestContext.principalName)(userPrincipalName=$requestContext.principalName)) yields (|(sAMAccountName=djo)(userPrincipalName=djo))

	It seems like the filter templating is not kicking in.

	Is there anything else to do other that creating the file a making the Dataconnector looks like :
   
 <resolver:DataConnector id="ADPasteur"
        xsi:type="dc:LDAPDirectory"
        springResources="file:///${idp.home}/conf/resolver/ldap-attribute-resolver-config.xml"/>


	Here’s the springRessources file I’m using :

<?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:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
 
    <!-- each bean is set on LDAPDataConnector -->
    <bean class="org.ldaptive.pool.PooledConnectionFactory">
        <property name="connectionPool">
            <bean class="org.ldaptive.pool.BlockingConnectionPool" init-method="initialize" p:blockWaitTime="%{idp.attribute.resolver.LDAP.blockWaitTime}" p:name="attribute-resolver-pool">
                <constructor-arg index="0">
                    <bean class="org.ldaptive.pool.PoolConfig"
                        p:minPoolSize="%{idp.pool.LDAP.minSize}"
                        p:maxPoolSize="%{idp.pool.LDAP.maxSize}"
                        p:validateOnCheckOut="%{idp.pool.LDAP.validateOnCheckout}"
                        p:validatePeriodically="%{idp.pool.LDAP.validatePeriodically}"
                        p:validatePeriod="%{idp.pool.LDAP.validatePeriod}" />
                </constructor-arg>
                <constructor-arg index="1">
                    <bean class="org.ldaptive.DefaultConnectionFactory">
                        <property name="connectionConfig">
                            <bean class="org.ldaptive.ConnectionConfig" p:ldapUrl="%{idp.attribute.resolver.LDAP.ldapURL}"
                                p:connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}"
                                p:responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}"
                                p:useSSL="%{idp.attribute.resolver.LDAP.useSSL}"
                                p:useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS}">
                                <property name="connectionInitializer">
                                    <bean class="org.ldaptive.BindConnectionInitializer"
                                        p:bindDn="%{idp.attribute.resolver.LDAP.bindDN}"
                                        p:bindCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}" />
                                </property>
                                <property name="sslConfig">
                                    <bean class="org.ldaptive.ssl.SslConfig"/>
                                </property>
                            </bean>
                        </property>
                    </bean>
                </constructor-arg>
                <property name="validator">
                    <bean class="org.ldaptive.pool.SearchValidator" />
                </property>
                <property name="pruneStrategy">
                    <bean class="org.ldaptive.pool.IdlePruneStrategy"
                        p:prunePeriod="%{idp.pool.LDAP.prunePeriod}"
                        p:idleTime="%{idp.pool.LDAP.idleTime}" />
                </property>
            </bean>
        </property>
    </bean>
 
    <bean class="org.ldaptive.SearchExecutor" p:baseDn="%{idp.attribute.resolver.LDAP.baseDN}" />
 
    <bean id="cacheBuilder" class="com.google.common.cache.CacheBuilder" factory-method="from">
        <constructor-arg value="expireAfterAccess=10s,maximumSize=25" />
    </bean>
 
    <bean id="cache" class="com.google.common.cache.Cache" factory-bean="cacheBuilder" factory-method="build" />
 
    <bean class="net.shibboleth.idp.attribute.resolver.dc.ldap.impl.TemplatedExecutableSearchFilterBuilder"
        p:templateText="%{idp.attribute.resolver.LDAP.searchFilter}" p:velocityEngine-ref="shibboleth.VelocityEngine"
        init-method="initialize" />
</beans>


Youssef Ghorbal
Institut Pasteur



More information about the users mailing list