2012-02-14 64 views
0

所以我有用戶的詳細信息無法創建類型的內部bean [org.springframework.security.config.authentication.AuthenticationManagerFactoryBean]

@Service("customUserDetailsService") 
public class TimexUserDetailsService implements UserDetailsService { 

    @Autowired private UserService userService; 

    public UserDetails loadUserByUsername(String username) 
     throws UsernameNotFoundException, DataAccessException { 
     TimexUser user = userService.getUserByUsername(username); 
     Collection<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();  
     for (String authority : user.getAuthorities()) 
      authorities.add(new GrantedAuthorityImpl(authority)); 
     return new User(username, user.getPassword(), true, true, true, true, authorities); 
    } 
} 

和XML類:

<beans:beans xmlns="http://www.springframework.org/schema/security" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/security 
        http://www.springframework.org/schema/security/spring-security-3.0.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

    <http use-expressions="true"> 
     <intercept-url pattern="/home" access="permitAll" /> 
     <intercept-url pattern="/projects/**" access="isAuthenticated()" /> 
     <intercept-url pattern="/projects/add/**" access="hasRole('manager')" /> 
     <form-login /> 
    </http> 

    <context:annotation-config /> 
    <context:component-scan base-package="com.yonder.timex" /> 

    <authentication-manager> 
     <authentication-provider ref="customUserDetailsService" /> 
    </authentication-manager> 

</beans:beans> 

和我得到的錯誤

嚴重:異常發送上下文初始化事件監聽器類的實例 org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException:錯誤 創建名稱爲 'org.springframework.security.authentication.ProviderManager#0' 豆: 無法創建內部bean「(內bean') [org.springframework.security.config.authentication.AuthenticationManagerFactoryBean] ,同時設置bean屬性'parent';嵌套的異常是 org.springframework.beans.factory.BeanCreationException:錯誤 創建名爲'(內部bean)'的bean:FactoryBean在 上拋出異常創建對象;嵌套的例外是 org.springframework.beans.factory.BeanCreationException:錯誤 創建名稱爲 「org.springframework.security.authenticationManager」豆:無法解析 參考豆「customUserDetailsS​​ervice」,而與主要設置豆 財產「供應商」 [0];嵌套的異常是 org.springframework.beans.factory.BeanCreationException:錯誤 創建名爲'customUserDetailsS​​ervice'的bean:注入 自動裝配的依賴關係失敗;嵌套的異常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private com.yonder.timex.service.UserService com.yonder.timex.TimexUserDetailsS​​ervice.userService;嵌套異常 是org.springframework.beans.factory.NoSuchBeanDefinitionException:找到 依賴性否類型的 匹配豆[com.yonder.timex.service.UserService]:預計至少1豆,其有資格作爲自動裝配 候選這種依賴性。依賴註解: 在 org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281) {@ org.springframework.beans.factory.annotation.Autowired(所需=真)} 在 有機.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:125) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1325) 在 org.springframework.beans .factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1086) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 在 org.springframework .beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:293) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry。的java:222) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 在 org.springframework .context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) at org.sprin gframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204) 在 org.springframework.web.context.ContextLoaderListener。 contextInitialized(ContextLoaderListener.java:47) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205) 在 org.apache.catalina.core.StandardContext.start(StandardContext.java:4704) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) 在 org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在 org.apache.catalina.core .StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java: 595)在 sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)at org.apache.catalina.startup.Bootstrap。主要(Bootstrap.java:414)

基本問題是,我想爲我的用戶詳細信息服務提供身份驗證提供程序,我不能這樣做。

非常感謝,特蘭卡

回答

0

問題來自其他地方。 我沒有設置創建bean的正確順序,因此這個錯誤