<p>I try to configure LDAP Authentication with 2 distinct Active Directory Domain called for the purpose domain1.ca and domain2.ca</p>
<p>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.
<a href="https://github.com/vt-middleware/ldaptive" target="_top" rel="nofollow" link="external">https://github.com/vt-middleware/ldaptive</a>
</p>
<p>I check my configuration more than 10 times and did not see any error and still have this error:</p>
<pre>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
</pre>
<p>Need Help</p>
<pre>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.ca
idp.authn.LDAP.useStartTLS.1 = false
idp.authn.LDAP.useSSL.1 = true
idp.authn.LDAP.connectTimeout.1 = 3000
## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust
idp.authn.LDAP.sslConfig.1= certificateTrust1
## If using certificateTrust above, set to the trusted certificate's path
idp.authn.LDAP.trustCertificates.1= %{idp.home}/ssl/ldape.domain1.crt
## Return attributes during authentication
## NOTE: there is a separate property used for attribute resolution
idp.authn.LDAP.returnAttributes.1= cn
## DN resolution properties ##
# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator
# for AD: CN=Users,DC=example,DC=org
idp.authn.LDAP.baseDN.1= dc=domain1,dc=ca
idp.authn.LDAP.subtreeSearch.1= true
idp.authn.LDAP.userFilter.1= (sAMAccountName={user})
# bind search configuration
# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
idp.authn.LDAP.bindDN.1= CN=svc-gestion-ldap,OU=Comptes de service,DC=domain1,DC=ca
idp.authn.LDAP.bindDNCredential.1= njksdlfsdfnjks
# Format DN resolution, used by directAuthenticator, adAuthenticator
# for AD use idp.authn.LDAP.dnFormat=%s@domain.com
idp.authn.LDAP.dnFormat.1= %s@domain1.ca
# LDAP attribute configuration, see attribute-resolver.xml
# Note, this likely won't apply to the use of legacy V2 resolver configurations
idp.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 resolution
idp.pool.LDAP.minSize.1 = 3
idp.pool.LDAP.maxSize.1 = 10
idp.pool.LDAP.validateOnCheckout.1 = false
idp.pool.LDAP.validatePeriodically.1 = true
idp.pool.LDAP.validatePeriod.1 = PT5M
idp.pool.LDAP.prunePeriod.1 = PT5M
idp.pool.LDAP.idleTime.1 = PT10M
idp.pool.LDAP.blockWaitTime.1 = PT3S
idp.pool.LDAP.failFastInitialize.1 = false
### Section des paramètres pour domain2.ca
## Connection properties ##
idp.authn.LDAP.ldapURL.2 = ldaps://ldape.domain2.ca
idp.authn.LDAP.useStartTLS.2 = false
idp.authn.LDAP.useSSL.2 = true
idp.authn.LDAP.connectTimeout.2 = 3000
## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust
idp.authn.LDAP.sslConfig.2= certificateTrust2
## If using certificateTrust above, set to the trusted certificate's path idp.home = C:/Program Files (x86)/Shibboleth/idp
idp.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 resolution
idp.authn.LDAP.returnAttributes.2= cn
## DN resolution properties ##
# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator
# for AD: CN=Users,DC=example,DC=org
idp.authn.LDAP.baseDN.2= dc=domain2,dc=ca
idp.authn.LDAP.subtreeSearch.2= true
idp.authn.LDAP.userFilter.2= (sAMAccountName={user})
# bind search configuration
# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com
idp.authn.LDAP.bindDN.2= CN=svc-gestion-ldap,OU=Comptes de service,DC=domain2,DC=ca
idp.authn.LDAP.bindDNCredential.2= njksdlfsdfnjks
# Format DN resolution, used by directAuthenticator, adAuthenticator
# for AD use idp.authn.LDAP.dnFormat=%s@domain2.com
idp.authn.LDAP.dnFormat.2= %s@domain2.ca
# LDAP attribute configuration, see attribute-resolver.xml
# Note, this likely won't apply to the use of legacy V2 resolver configurations
idp.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 resolution
idp.pool.LDAP.minSize.2 = 3
idp.pool.LDAP.maxSize.2 = 10
idp.pool.LDAP.validateOnCheckout.2 = false
idp.pool.LDAP.validatePeriodically.2 = true
idp.pool.LDAP.validatePeriod.2 = PT5M
idp.pool.LDAP.prunePeriod.2 = PT5M
idp.pool.LDAP.idleTime.2 = PT10M
idp.pool.LDAP.blockWaitTime.2 = PT3S
idp.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>
</pre></div>
<br/><hr align="left" width="300" />
Sent from the <a href="http://shibboleth.1660669.n2.nabble.com/Shibboleth-Users-f1660767.html">Shibboleth - Users mailing list archive</a> at Nabble.com.<br/>