Cannot start AttributeResolverService because of an error when creating bean [org.ldaptive.DefaultConnectionFactory]

cpoirier at teluq.ca cpoirier at teluq.ca
Wed Feb 21 10:49:59 EST 2018


I try to configure LDAP Authentication with 2 distinct Active Directory
Domain called for the purpose domain1.ca and domain2.ca
As I do not have the development environment for debugging the application,
I try to follow the execution in my head using the code on github.
https://github.com/vt-middleware/ldaptive
<https://github.com/vt-middleware/ldaptive>  
I check my configuration more than 10 times and did not see any error and
still have this error:
2018-02-20 16:33:22,421 - WARN
[net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext:549]
- Exception encountered during context initialization - cancelling refresh
attempt: org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'teluququebecca': Cannot create inner bean '(inner
bean)#32507479' of type [org.ldaptive.DefaultConnectionFactory] while
setting bean property 'connectionFactory'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name '(inner bean)#32507479': Cannot create inner bean '(inner
bean)#632383b9' of type [org.ldaptive.ConnectionConfig] while setting
constructor argument; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name '(inner bean)#632383b9': Cannot create inner bean '(inner
bean)#2dd63e3' of type [org.ldaptive.ssl.SslConfig] while setting bean
property 'sslConfig'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name '(inner bean)#2dd63e3': Cannot create inner bean '(inner
bean)#6a98f353' of type
[net.shibboleth.idp.attribute.resolver.spring.dc.ldap.impl.CredentialConfigFactoryBean]
while setting bean property 'credentialConfig'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name '(inner bean)#6a98f353': Cannot create inner bean '(inner
bean)#3b35798' of type
[net.shibboleth.idp.profile.spring.factory.BasicX509CredentialFactoryBean]
while setting bean property 'trustCredential'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name '(inner bean)#3b35798': Invocation of init method failed; nested
exception is java.lang.IllegalArgumentException: name
Need Help
The following show my configuration:[password-authn-config.xml]<!--
<import resource="ldap-authn-config.xml" /> --><import
resource="ldap-authn-config-2.xml">[idp.properties]idp.additionalProperties=
/conf/ldap.properties, /conf/ldap2.properties, /conf/saml-nameid.properties,
/conf/services.properties,
/conf/authn/duo.properties[ldap.properties]idp.authn.LDAP.authenticator=
aggregateAuthenticator[ldap2.properties]## Connection properties
##idp.authn.LDAP.ldapURL.1 =
ldaps://ldape.domain1.caidp.authn.LDAP.useStartTLS.1 =
falseidp.authn.LDAP.useSSL.1 = trueidp.authn.LDAP.connectTimeout.1 = 3000##
SSL configuration, either jvmTrust, certificateTrust, or
keyStoreTrustidp.authn.LDAP.sslConfig.1= certificateTrust1## If using
certificateTrust above, set to the trusted certificate's
pathidp.authn.LDAP.trustCertificates.1= %{idp.home}/ssl/ldape.domain1.crt##
Return attributes during authentication## NOTE: there is a separate property
used for attribute resolutionidp.authn.LDAP.returnAttributes.1= cn## DN
resolution properties ### Search DN resolution, used by
anonSearchAuthenticator, bindSearchAuthenticator# for AD:
CN=Users,DC=example,DC=orgidp.authn.LDAP.baseDN.1=
dc=domain1,dc=caidp.authn.LDAP.subtreeSearch.1=
trueidp.authn.LDAP.userFilter.1= (sAMAccountName={user})# bind search
configuration# for AD:
idp.authn.LDAP.bindDN=adminuser at domain.comidp.authn.LDAP.bindDN.1=
CN=svc-gestion-ldap,OU=Comptes de
service,DC=domain1,DC=caidp.authn.LDAP.bindDNCredential.1= njksdlfsdfnjks#
Format DN resolution, used by directAuthenticator, adAuthenticator# for AD
use idp.authn.LDAP.dnFormat=%s at domain.comidp.authn.LDAP.dnFormat.1=
%s at domain1.ca# LDAP attribute configuration, see attribute-resolver.xml#
Note, this likely won't apply to the use of legacy V2 resolver
configurationsidp.attribute.resolver.LDAP.ldapURL.1=
%{idp.authn.LDAP.ldapURL.1}idp.attribute.resolver.LDAP.baseDN.1=
%{idp.authn.LDAP.baseDN.1:undefined}idp.attribute.resolver.LDAP.bindDN.1=
%{idp.authn.LDAP.bindDN.1:undefined}idp.attribute.resolver.LDAP.bindDNCredential.1=
%{idp.authn.LDAP.bindDNCredential.1:undefined}idp.attribute.resolver.LDAP.useStartTLS.1=
%{idp.authn.LDAP.useStartTLS.1:true}idp.attribute.resolver.LDAP.trustCertificates.1=
%{idp.authn.LDAP.trustCertificates.1:undefined}idp.attribute.resolver.LDAP.searchFilter.1=
(sAMAccountName=$resolutionContext.principal)idp.attribute.resolver.LDAP.returnAttributes.1=
sAMAccountName,cn,mail,userPrincipalName# LDAP pool configuration, used for
both authn and DN resolutionidp.pool.LDAP.minSize.1                         
= 3idp.pool.LDAP.maxSize.1                          =
10idp.pool.LDAP.validateOnCheckout.1               =
falseidp.pool.LDAP.validatePeriodically.1             =
trueidp.pool.LDAP.validatePeriod.1                   =
PT5Midp.pool.LDAP.prunePeriod.1                      =
PT5Midp.pool.LDAP.idleTime.1                         =
PT10Midp.pool.LDAP.blockWaitTime.1                    =
PT3Sidp.pool.LDAP.failFastInitialize.1               = false### Section des
paramètres pour domain2.ca## Connection properties
##idp.authn.LDAP.ldapURL.2 =
ldaps://ldape.domain2.caidp.authn.LDAP.useStartTLS.2 =
falseidp.authn.LDAP.useSSL.2 = trueidp.authn.LDAP.connectTimeout.2 = 3000##
SSL configuration, either jvmTrust, certificateTrust, or
keyStoreTrustidp.authn.LDAP.sslConfig.2= certificateTrust2## If using
certificateTrust above, set to the trusted certificate's path idp.home =
C:/Program Files (x86)/Shibboleth/idpidp.authn.LDAP.trustCertificates.2=
%{idp.home}/ssl/ldape.teluq.ca.crt## If using keyStoreTrust above, set to
the truststore path#idp.authn.LDAP.trustStore.2=
%{idp.home}/credentials/ldap-server.truststore## Return attributes during
authentication## NOTE: there is a separate property used for attribute
resolutionidp.authn.LDAP.returnAttributes.2= cn## DN resolution properties
### Search DN resolution, used by anonSearchAuthenticator,
bindSearchAuthenticator# for AD:
CN=Users,DC=example,DC=orgidp.authn.LDAP.baseDN.2=
dc=domain2,dc=caidp.authn.LDAP.subtreeSearch.2=
trueidp.authn.LDAP.userFilter.2= (sAMAccountName={user})# bind search
configuration# for AD:
idp.authn.LDAP.bindDN=adminuser at domain.comidp.authn.LDAP.bindDN.2=
CN=svc-gestion-ldap,OU=Comptes de
service,DC=domain2,DC=caidp.authn.LDAP.bindDNCredential.2= njksdlfsdfnjks#
Format DN resolution, used by directAuthenticator, adAuthenticator# for AD
use idp.authn.LDAP.dnFormat=%s at domain2.comidp.authn.LDAP.dnFormat.2=
%s at domain2.ca# LDAP attribute configuration, see attribute-resolver.xml#
Note, this likely won't apply to the use of legacy V2 resolver
configurationsidp.attribute.resolver.LDAP.ldapURL.2=
%{idp.authn.LDAP.ldapURL.2}idp.attribute.resolver.LDAP.connectTimeout      =
%{idp.authn.LDAP.connectTimeout.2:PT3S}idp.attribute.resolver.LDAP.responseTimeout    
=
%{idp.authn.LDAP.responseTimeout.2:PT3S}idp.attribute.resolver.LDAP.baseDN.2=
%{idp.authn.LDAP.baseDN:undefined}idp.attribute.resolver.LDAP.bindDN.2=
%{idp.authn.LDAP.bindDN:undefined}idp.attribute.resolver.LDAP.bindDNCredential.2=
%{idp.authn.LDAP.bindDNCredential:undefined}idp.attribute.resolver.LDAP.useStartTLS.2=
%{idp.authn.LDAP.useStartTLS:true}idp.attribute.resolver.LDAP.trustCertificates.2=
%{idp.authn.LDAP.trustCertificates.2:undefined}idp.attribute.resolver.LDAP.searchFilter.2=
(sAMAccountName=$resolutionContext.principal)idp.attribute.resolver.LDAP.returnAttributes.2=
sAMAccountName,cn,displayName,distinguishedName,name,mail,userPrincipalName#
LDAP pool configuration, used for both authn and DN
resolutionidp.pool.LDAP.minSize.2                          =
3idp.pool.LDAP.maxSize.2                          =
10idp.pool.LDAP.validateOnCheckout.2               =
falseidp.pool.LDAP.validatePeriodically.2             =
trueidp.pool.LDAP.validatePeriod.2                   =
PT5Midp.pool.LDAP.prunePeriod.2                      =
PT5Midp.pool.LDAP.idleTime.2                         =
PT10Midp.pool.LDAP.blockWaitTime.2                    =
PT3Sidp.pool.LDAP.failFastInitialize.2               =
false[ldap-auth-config-2.xml]<?xml version="1.0"
encoding="UTF-8"?><beans
xmlns="http://www.springframework.org/schema/beans"      
xmlns:context="http://www.springframework.org/schema/context"      
xmlns:util="http://www.springframework.org/schema/util"      
xmlns:p="http://www.springframework.org/schema/p"      
xmlns:c="http://www.springframework.org/schema/c"      
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd                          
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd                          
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd"      
default-init-method="initialize"       default-destroy-method="destroy"      
default-lazy-init="true">    <!-- NEW Aggregate Authenticator      
idp.authn.LDAP.authenticator = aggregateAuthenticator     
idp.authn.LDAP.returnAttributes = 1.1    -->    <bean
id="aggregateAuthenticator" class="org.ldaptive.auth.Authenticator"     
c:resolver-ref="aggregateDnResolver"     
c:handler-ref="aggregateAuthHandler" />    <!-- Aggregate DN
resolution -->    <bean id="aggregateDnResolver"
class="org.ldaptive.auth.AggregateDnResolver"         
c:resolvers-ref="dnResolvers"          p:allowMultipleDns="true" />   
<util:map id="dnResolvers">       <entry key="ldap1"
value-ref="bindSearchDnResolver1" />       <entry key="ldap2"
value-ref="bindSearchDnResolver2" />    </util:map>    <!--
Aggregate authentication -->           <bean id="aggregateAuthHandler"
class="org.ldaptive.auth.AggregateDnResolver$AuthenticationHandler"         
p:authenticationHandlers-ref="authHandlers" />    <util:map
id="authHandlers">       <entry key="ldap1" value-ref="authHandler1"
/>       <entry key="ldap2" value-ref="authHandler2" />   
</util:map>	    <alias
name="%{idp.authn.LDAP.authenticator.1:anonSearchAuthenticator}"
alias="shibboleth.authn.LDAP.authenticator" />    <bean
id="shibboleth.authn.LDAP.returnAttributes"
parent="shibboleth.CommaDelimStringArray">        <constructor-arg
type="java.lang.String" value="%{idp.authn.LDAP.returnAttributes:1.1}" />   
</bean>    <alias name="ValidateUsernamePasswordAgainstLDAP"
alias="ValidateUsernamePassword" />    <!-- LDAP 1 - BindAuthenticator      
idp.authn.LDAP.ldapURL.1 = undefined       idp.authn.LDAP.useStartTLS.1 =
true       idp.authn.LDAP.useSSL.1 = false      
idp.authn.LDAP.connectionTimeout.1 = 3000       idp.authn.LDAP.sslConfig.1 =
certificateTrust1       idp.authn.LDAP.trustCertificates.1 = undefined      
idp.authn.LDAP.dnFormat.1 = undefined       idp.authn.LDAP.baseDN.1 =
undefined       idp.authn.ldap.subtreesearch.1 = false      
idp.authn.LDAP.userFilter.1 = undefined       idp.authn.LDAP.bindDN.1 =
undefined       idp.authn.LDAP.bindDNCredential.1 = undefined    -->
<!-- ############# Configuration pour LDAP #1 (domain1.ca) ##############
-->    <!-- Connection Configuration -->    <bean
id="connectionConfig1" class="org.ldaptive.ConnectionConfig" abstract="true" 	
p:ldapUrl="%{idp.authn.LDAP.ldapURL.1:undefined}"       
p:useStartTLS="%{idp.authn.LDAP.useStartTLS:true}"       
p:useSSL="%{idp.authn.LDAP.useSSL:false}"       
p:connectTimeout="%{idp.authn.LDAP.connectTimeout:PT3S}"       
p:sslConfig-ref="sslConfig1" />    <alias
name="%{idp.authn.LDAP.sslConfig.1:certificateTrust1}" alias="sslConfig1"
/>    <bean id="certificateTrust1"
class="org.ldaptive.ssl.SslConfig">        <property
name="credentialConfig">            <bean
parent="shibboleth.X509ResourceCredentialConfig"
p:trustCertificates="%{idp.authn.LDAP.trustCertificates.1:undefined}" />       
</property>    </bean>    <!-- Authentication handler -->   
<bean id="authHandler1"
class="org.ldaptive.auth.PooledBindAuthenticationHandler"
p:connectionFactory-ref="bindPooledConnectionFactory1" />    <bean
id="bindPooledConnectionFactory1"
class="org.ldaptive.pool.PooledConnectionFactory"
p:connectionPool-ref="bindConnectionPool1" />    <bean
id="bindConnectionPool1" class="org.ldaptive.pool.BlockingConnectionPool"
parent="connectionPool1"       
p:connectionFactory-ref="bindConnectionFactory1" p:name="bind-pool1" />   
<bean id="bindConnectionFactory1"
class="org.ldaptive.DefaultConnectionFactory"
p:connectionConfig-ref="bindConnectionConfig1" />    <bean
id="bindConnectionConfig1" parent="connectionConfig1" />    <!-- Pool
Configuration -->    <bean id="connectionPool1"
class="org.ldaptive.pool.BlockingConnectionPool" abstract="true"       
p:blockWaitTimeDuration="%{idp.pool.LDAP.blockWaitTime.1:PT3S}"       
p:poolConfig-ref="poolConfig1"        p:pruneStrategy-ref="pruneStrategy1"       
p:validator-ref="searchValidator1"       
p:failFastInitialize="%{idp.pool.LDAP.failFastInitialize.1:false}" />   
<bean id="poolConfig1" class="org.ldaptive.pool.PoolConfig"       
p:minPoolSize="%{idp.pool.LDAP.minSize.1:3}"       
p:maxPoolSize="%{idp.pool.LDAP.maxSize.1:10}"       
p:validateOnCheckOut="%{idp.pool.LDAP.validateOnCheckout.1:false}"       
p:validatePeriodically="%{idp.pool.LDAP.validatePeriodically.1:true}"       
p:validatePeriodDuration="%{idp.pool.LDAP.validatePeriod.1:PT5M}" />   
<bean id="pruneStrategy1" class="org.ldaptive.pool.IdlePruneStrategy"       
p:prunePeriodDuration="%{idp.pool.LDAP.prunePeriod.1:PT5M}"       
p:idleTimeDuration="%{idp.pool.LDAP.idleTime.1:PT10M}" />    <bean
id="searchValidator1" class="org.ldaptive.pool.SearchValidator" />   
<!-- Bind Search Configuration --><!--	     <bean
name="bindSearchAuthenticator1" class="org.ldaptive.auth.Authenticator"
p:resolveEntryOnFailure="%{idp.authn.LDAP.resolveEntryOnFailure.1:false}">       
<constructor-arg index="0" ref="bindSearchDnResolver1" />       
<constructor-arg index="1" ref="authHandler1" />   
</bean>-->	    <bean id="bindSearchDnResolver1"
class="org.ldaptive.auth.PooledSearchDnResolver"       
p:baseDn="#{'%{idp.authn.LDAP.baseDN.1:undefined}'.trim()}"       
p:subtreeSearch="%{idp.authn.LDAP.subtreeSearch.1:false}"       
p:userFilter="#{'%{idp.authn.LDAP.userFilter.1:undefined}'.trim()}"       
p:connectionFactory-ref="bindSearchPooledConnectionFactory1" />   
<bean id="bindSearchPooledConnectionFactory1"
class="org.ldaptive.pool.PooledConnectionFactory"       
p:connectionPool-ref="bindSearchConnectionPool1" />    <bean
id="bindSearchConnectionPool1"
class="org.ldaptive.pool.BlockingConnectionPool" parent="connectionPool1"       
p:connectionFactory-ref="bindSearchConnectionFactory1" p:name="search-pool1"
/>    <bean id="bindSearchConnectionFactory1"
class="org.ldaptive.DefaultConnectionFactory"
p:connectionConfig-ref="bindSearchConnectionConfig1" />    <bean
id="bindSearchConnectionConfig1" parent="connectionConfig1" 	
p:connectionInitializer-ref="bindConnectionInitializer1" 	
p:ldapUrl="%{idp.authn.LDAP.ldapURL1}" />    <bean
id="bindConnectionInitializer1"
class="org.ldaptive.BindConnectionInitializer"           
p:bindDn="#{'%{idp.authn.LDAP.bindDN.1:undefined}'.trim()}">       
<property name="bindCredential">            <bean
class="org.ldaptive.Credential"
c:password="%{idp.authn.LDAP.bindDNCredential.1:undefined}" />       
</property>    </bean>	     <!-- Want to use ppolicy?
Configure support by adding <bean id="authenticationResponseHandler"
class="org.ldaptive.auth.ext.PasswordPolicyAuthenticationResponseHandler"       
/> add
p:authenticationResponseHandlers-ref="authenticationResponseHandler" to the
authenticator <bean id="authenticationControl"       
class="org.ldaptive.control.PasswordPolicyControl" /> add
p:authenticationControls-ref="authenticationControl" to the authHandler
-->			<!-- ############# Configuration pour LDAP #2 (domain2.ca)
############## -->		    <!-- LDAP 2 - BindAuthenticator      
idp.authn.LDAP.ldapURL.2 = undefined       idp.authn.LDAP.useStartTLS.2 =
true       idp.authn.LDAP.useSSL.2 = false      
idp.authn.LDAP.connectionTimeout.2 = 3000       idp.authn.LDAP.sslConfig.2 =
certificateTrust2       idp.authn.LDAP.trustCertificates.2 = undefined      
idp.authn.LDAP.dnFormat.2 = undefined       idp.authn.LDAP.baseDN.2 =
undefined       idp.authn.ldap.subtreesearch.2 = false      
idp.authn.LDAP.userFilter.2 = undefined       idp.authn.LDAP.bindDN.2 =
undefined       idp.authn.LDAP.bindDNCredential.2 = undefined    -->       
<!-- Connection Configuration -->    <bean id="connectionConfig2"
class="org.ldaptive.ConnectionConfig" abstract="true" 	
p:ldapUrl="%{idp.authn.LDAP.ldapURL.2:undefined}"       
p:useStartTLS="%{idp.authn.LDAP.useStartTLS:true}"       
p:useSSL="%{idp.authn.LDAP.useSSL:false}"       
p:connectTimeoutDuration="%{idp.authn.LDAP.connectTimeout:PT3S}"       
p:sslConfig-ref="sslConfig2" />    <alias
name="%{idp.authn.LDAP.sslConfig.2:certificateTrust2}" alias="sslConfig2"
/>    <bean id="certificateTrust2"
class="org.ldaptive.ssl.SslConfig">        <property
name="credentialConfig">            <bean
parent="shibboleth.X509ResourceCredentialConfig"
p:trustCertificates="%{idp.authn.LDAP.trustCertificates.2:undefined}" />       
</property>    </bean>    <!-- Authentication handler -->   
<bean id="authHandler2"
class="org.ldaptive.auth.PooledBindAuthenticationHandler"
p:connectionFactory-ref="bindPooledConnectionFactory2" />    <bean
id="bindPooledConnectionFactory2"
class="org.ldaptive.pool.PooledConnectionFactory"
p:connectionPool-ref="bindConnectionPool2" />    <bean
id="bindConnectionPool2" class="org.ldaptive.pool.BlockingConnectionPool"
parent="connectionPool2"       
p:connectionFactory-ref="bindConnectionFactory2" p:name="bind-pool2" />   
<bean id="bindConnectionFactory2"
class="org.ldaptive.DefaultConnectionFactory"
p:connectionConfig-ref="bindConnectionConfig2" />    <bean
id="bindConnectionConfig2" parent="connectionConfig2" />    <!-- Pool
Configuration -->    <bean id="connectionPool2"
class="org.ldaptive.pool.BlockingConnectionPool" abstract="true"       
p:blockWaitTime="%{idp.pool.LDAP.blockWaitTime.2:PT3S}"       
p:poolConfig-ref="poolConfig2"        p:pruneStrategy-ref="pruneStrategy2"       
p:validator-ref="searchValidator2"       
p:failFastInitialize="%{idp.pool.LDAP.failFastInitialize.2:false}" />   
<bean id="poolConfig2" class="org.ldaptive.pool.PoolConfig"       
p:minPoolSize="%{idp.pool.LDAP.minSize.2:3}"       
p:maxPoolSize="%{idp.pool.LDAP.maxSize.2:10}"       
p:validateOnCheckOut="%{idp.pool.LDAP.validateOnCheckout.2:false}"       
p:validatePeriodically="%{idp.pool.LDAP.validatePeriodically.2:true}"       
p:validatePeriod="%{idp.pool.LDAP.validatePeriod.2:PT5M}" />    <bean
id="pruneStrategy2" class="org.ldaptive.pool.IdlePruneStrategy"       
p:prunePeriodDuration="%{idp.pool.LDAP.prunePeriod.2:PT5M}"       
p:idleTimeDuration="%{idp.pool.LDAP.idleTime.2:PT10M}" />    <bean
id="searchValidator2" class="org.ldaptive.pool.SearchValidator" />   
<!-- Bind Search Configuration --><!--     <bean
name="bindSearchAuthenticator2" class="org.ldaptive.auth.Authenticator"
p:resolveEntryOnFailure="%{idp.authn.LDAP.resolveEntryOnFailure.2:false}">       
<constructor-arg index="0" ref="bindSearchDnResolver2" />       
<constructor-arg index="1" ref="authHandler2" />   
</bean>-->	 	<bean id="bindSearchDnResolver2"
class="org.ldaptive.auth.PooledSearchDnResolver"       
p:baseDn="#{'%{idp.authn.LDAP.baseDN.2:undefined}'.trim()}"       
p:subtreeSearch="%{idp.authn.LDAP.subtreeSearch.2:false}"       
p:userFilter="#{'%{idp.authn.LDAP.userFilter.2:undefined}'.trim()}"       
p:connectionFactory-ref="bindSearchPooledConnectionFactory2" />   
<bean id="bindSearchPooledConnectionFactory2"
class="org.ldaptive.pool.PooledConnectionFactory"       
p:connectionPool-ref="bindSearchConnectionPool2" />    <bean
id="bindSearchConnectionPool2"
class="org.ldaptive.pool.BlockingConnectionPool" parent="connectionPool2"       
p:connectionFactory-ref="bindSearchConnectionFactory2" p:name="search-pool2"
/>    <bean id="bindSearchConnectionFactory2"
class="org.ldaptive.DefaultConnectionFactory"
p:connectionConfig-ref="bindSearchConnectionConfig2" />    <bean
id="bindSearchConnectionConfig2" parent="connectionConfig2"
p:connectionInitializer-ref="bindConnectionInitializer2" />    <bean
id="bindConnectionInitializer2"
class="org.ldaptive.BindConnectionInitializer"           
p:bindDn="#{'%{idp.authn.LDAP.bindDN.2:undefined}'.trim()}">       
<property name="bindCredential">            <bean
class="org.ldaptive.Credential"
c:password="%{idp.authn.LDAP.bindDNCredential.2:undefined}" />       
</property>    </bean>        <!-- Want to use ppolicy?
Configure support by adding <bean id="authenticationResponseHandler"
class="org.ldaptive.auth.ext.PasswordPolicyAuthenticationResponseHandler"       
/> add
p:authenticationResponseHandlers-ref="authenticationResponseHandler" to the
authenticator <bean id="authenticationControl"       
class="org.ldaptive.control.PasswordPolicyControl" /> add
p:authenticationControls-ref="authenticationControl" to the authHandler
--></beans>




--
Sent from: http://shibboleth.1660669.n2.nabble.com/Shibboleth-Users-f1660767.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20180221/8b698ca8/attachment.html>


More information about the users mailing list