Java 将spring security从3.X升级到4.X时的循环引用
我正在将SpringSecurity从3.2.5.RELEASE升级到4.0.3.RELEASE。根据ProviderManager的属性,现在应该通过构造函数初始化它。因此,我改变了:Java 将spring security从3.X升级到4.X时的循环引用,java,spring-security,upgrade,circular-reference,Java,Spring Security,Upgrade,Circular Reference,我正在将SpringSecurity从3.2.5.RELEASE升级到4.0.3.RELEASE。根据ProviderManager的属性,现在应该通过构造函数初始化它。因此,我改变了: <beans:bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager"> <beans:property name="p
<beans:bean id="authenticationManager"
class="org.springframework.security.authentication.ProviderManager">
<beans:property name="providers">
<beans:list>
<beans:ref bean="daoAuthenticationProvider" />
</beans:list>
</beans:property>
</beans:bean>
<beans:bean id="daoAuthenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<beans:property name="userDetailsService" ref="userDetailsManager" />
...
</beans:bean>
<beans:bean id="userDetailsManager"
class="org.springframework.security.provisioning.JdbcUserDetailsManager">
<beans:property name="authenticationManager"
ref="authenticationManager" />
...
</beans:bean>
有没有关于如何规避这个问题的想法
<beans:bean id="authenticationManager"
class="org.springframework.security.authentication.ProviderManager">
<beans:constructor-arg name="providers">
<beans:list>
<beans:ref bean="daoAuthenticationProvider" />
</beans:list>
</beans:constructor-arg>
</beans:bean>
<beans:bean id="daoAuthenticationProvider"
class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<beans:property name="userDetailsService" ref="userDetailsManager" />
...
</beans:bean>
<beans:bean id="userDetailsManager"
class="org.springframework.security.provisioning.JdbcUserDetailsManager">
<beans:property name="authenticationManager"
ref="authenticationManager" />
...
</beans:bean>
ERROR 2016-01-20 11:46:18,511 [RMI TCP Connection(4)-127.0.0.1] (?:?) - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'securityServicesDelegator' defined in class path resource [web-security-context-ui.xml]:
Cannot resolve reference to bean 'authenticationManager' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticationManager' defined in class path resource [web-security-context-ui.xml]:
Cannot resolve reference to bean 'daoAuthenticationProvider' while setting constructor argument with key [3]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'daoAuthenticationProvider' defined in class path resource [web-security-context-ui.xml]:
Cannot resolve reference to bean 'userDetailsManager' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDetailsManager' defined in class path resource [web-security-context-ui.xml]:
Cannot resolve reference to bean 'authenticationManager' while setting bean property 'authenticationManager'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'authenticationManager': Requested bean is currently in creation:
Is there an unresolvable circular reference?