2014-03-30 41 views
0

我實現春季安全在我的項目無法識別的Spring Security認證提供商的用戶服務,裁判

在我的DAO類我定義的loadUserByUsername

我的課就像

UserDAOImpl.java

@Repository 
public class UserDAOImpl { 

public UserDetails loadUserByUsername(String name)throws UsernameNotFoundException 
{ 
    //implementation 
} 
} 

在Spring-security.xml文件

<authentication-manager> 
     <authentication-provider user-service-ref="UserDAOImpl"> 
     </authentication-provider> 
    </authentication-manager> 

但是當我跑我得到一個錯誤的程序

Error creating bean with name 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0': Cannot resolve reference to bean 'UserDAOImpl' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'UserDAOImpl' is defined 

誰能幫助我我怎麼解決這個問題?

+0

您是否在servlet-context.xml中定義了您的UserDaoImpl bean? –

+0

將不會框架自動檢測它我已經給@Repository UserDaoImpl? – underdog

+0

它會,但你添加了''? – AKS

回答

0

通常被組件掃描豆駱駝套管用小寫字母開頭,所以豆將在應用方面存在爲userDAOImpl(不UserDAOImpl

改變你的spring-security.xml段來

<authentication-manager> 
    <authentication-provider user-service-ref="userDAOImpl"> 
    </authentication-provider> 
</authentication-manager> 

希望這對你有用。

0

呃...得到它的工作。

感動

<context:component-scan base-package="app.com,app.com.controller,app.com.dao,app.com.service,app.com.model"/> 

    <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" 
      p:basename="messages"/> 

從調度員的servlet對類名應用程序的context.xml

@Service( 「在UserDAOImpl」)標註

有沒有人照顧知道爲什麼它開始工作?

相關問題