Possible Duplicate:
Getting error org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘springSecurityFilterChain’ is defined無豆命名的AuthenticationManager
在我的Spring應用程序,我不斷收到此錯誤:
No bean named 'org.springframework.security.authenticationManager' is defined: Did you forget to add a gobal <authentication-manager> element to your configuration (with child <authentication-provider> elements)? Alternatively you can use the authentication-manager-ref attribute on your <http> and <global-method-security> elements.
在我的春季安全方面的XML文件,我已經定義如下:
<beans:bean id="myUserDetailsService" class="com.myProject.core.security.MyUserDetailsService" />
<beans:bean id="encoder" class="com.myProject.core.security.HmacPasswordEncoder" />
<authentication-manager id="clientAuthenticationManager" >
<authentication-provider user-service-ref="myUserDetailsService">
<password-encoder ref="encoder" />
</authentication-provider>
</authentication-manager>
當我明確定義了我的身份驗證管理器和身份驗證提供程序時,爲什麼會抱怨?
注:這可能幫助,它是一個更具描述性的錯誤:
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'org.springframework.security.filterChains': Cannot resolve reference to bean
'org.springframework.security.web.DefaultSecurityFilterChain#2' while setting bean
property 'sourceList' with key [2]; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.springframework.security.web.DefaultSecurityFilterChain#2':
Cannot resolve reference to bean 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'
while setting constructor argument with key [1]; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
Cannot resolve reference to bean 'org.springframework.security.authentication.ProviderManager#0'
while setting bean property 'authenticationManager'; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'org.springframework.security.authentication.ProviderManager#0': Cannot resolve
reference to bean 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
FactoryBean threw exception on object creation; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named
'org.springframework.security.authenticationManager' is defined: Did you forget to
add a gobal <authentication-manager> element to your configuration (with child
<authentication-provider> elements)? Alternatively you can use the authentication-manager-ref
attribute on your <http> and <global-method-security> elements.
這沒有爲我工作。 – user1007895
或甚至<認證管理器> <認證提供源用戶服務-REF = 「myUserDetailsService」> <密碼編碼器REF = 「編碼器」/> 認證提供商> 認證管理器> – iMysak
從第二個建議中刪除'id =「clientAuthenticationManager」',看看是否可行 - 查看更新的編輯。 –