应用服务器启动时的Spring Security LDAP配置BeanCreationException

时间:2012-07-19 21:45:49

标签: java spring spring-security ldap

我正在尝试将我的Spring 3.1应用程序连接到我的内部Zimbra LDAP服务器。我正在做一些非常愚蠢的事情,我看不出问题。我确定可能存在我定义的组和用户群以及过滤器术语的问题,但这不应该在应用服务器启动时导致BeanCreationException,如果它?我可以用另一双眼睛......

例外的简短版本:

“无法将LdapAuthenticationProvider转换为属性提供程序所需的类型AuthenticationProvider [0]”

完整的例外:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Cannot create inner bean '(inner bean)' of type [org.springframework.security.config.authentication.AuthenticationManagerFactoryBean] while setting bean property 'parent'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#16': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authenticationManager': Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.util.List' for property 'providers'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.security.ldap.authentication.LdapAuthenticationProvider] to required type [org.springframework.security.authentication.AuthenticationProvider] for property 'providers[0]': no matching editors or conversion strategy found

相关的Spring配置文件条目:

<security:authentication-manager>
    <security:ldap-authentication-provider
        group-search-filter="member={0}"
        group-search-base="ou=groups"
        user-search-base="ou=people"
        user-search-filter="uid={0}"
    />        
</security:authentication-manager>

<security:ldap-server url="ldap://<correct IP and port>" manager-dn="uid=zimbra,cn=admins,cn=zimbra" manager-password="<private>" />

感谢您提供的任何见解!

1 个答案:

答案 0 :(得分:0)

这看起来是你所包含的Spring库之间的不匹配。 您需要确保Spring Security LDAP库与其他Spring Security库版本匹配。

例如:

spring-security-web-3.1.0.RELEASE.jar
spring-security-core-3.1.0.RELEASE.jar
spring-security-config-3.1.0.RELEASE.jar
spring-security-ldap-3.1.0.RELEASE.jar