2011-03-23 11 views
0

私はカスタムフィルタを実装しようとしています。認証プロバイダはリクエストから直接ユーザーを認証します。しかし、私は次の例外を取得しています。春のセキュリティでInMemoryDaoImplを使用する

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'signedRequestAuthenticationProvider' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: 
Cannot resolve reference to bean  'org.springframework.security.core.userdetails.memory.InMemoryDaoImpl' 
    while setting bean 
property 'userDetailsService'; nested exception is 
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.springframework.security.core.userdetails.memory.InMemoryDaoImpl' 
is defined at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328) 

私のアプリケーションコンテキスト

<bean id="signedRequestAuthenticationProvider" class="src.SignedUsernamePasswordAuthenticationProvider"> 
     <property name="userDetailsService" ref="org.springframework.security.core.userdetails.memory.InMemoryDaoImpl"/> 
    </bean> 

私のsecurity.xmlは

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/login*" access="hasRole('ROLE_ANONYMOUS')"/> 
      <intercept-url pattern="/*" access="hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')"/> 

      <form-login login-page="/login.jsp"/> 
      <custom-filter ref="requestHeaderFilter" before="FORM_LOGIN_FILTER"/> 
    </http> 

    <authentication-manager alias="authenticationManager"> 
    <authentication-provider ref="signedRequestAuthenticationProvider"/> 
      <authentication-provider> 
     <user-service> 
      <user authorities="ROLE_USER" name="guest" password="guest"/> 
          <user authorities="ROLE_ADMIN" name="vinoth" password="vinoth"/> 
     </user-service> 
    </authentication-provider> 
</authentication-manager> 

を読み取っている、私は何かが足りないのですか?

答えて

1

org.springframework.security.core.userdetails.memory.InMemoryDaoImplはBean識別子ではないため、ref属性では使用できません。あなたはidで明示的に識別子を導入する必要があります。

<bean id="signedRequestAuthenticationProvider" class="src.SignedUsernamePasswordAuthenticationProvider"> 
    <property name="userDetailsService" ref="userService"/> 
</bean> 

<authentication-manager alias="authenticationManager"> 
    <authentication-provider ref="signedRequestAuthenticationProvider"/> 
    <authentication-provider> 
     <user-service id = "userService"> 
      <user authorities="ROLE_USER" name="guest" password="guest"/> 
      <user authorities="ROLE_ADMIN" name="vinoth" password="vinoth"/> 
     </user-service> 
    </authentication-provider> 
</authentication-manager> 
+0

感謝を。これはうまくいった。 – vinoth

関連する問題