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