2010-09-15 129 views
2

我试图实现spring-security来处理我的web应用程序的身份验证和授权。我无法获得正确的配置。当我部署war文件时,Tomcat会显示错误。春季安全3.0.3配置错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authentication.ProviderManager#0': Cannot create inner bean '(inner bean)' of type [org.springframework.security.config.authentication.AuthenticationManagerFactoryBean] while setting bean property 'parent'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authenticationManager': Cannot resolve reference to bean 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0' while setting bean property 'providers' with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.authentication.dao.DaoAuthenticationProvider#0': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/dao/DataAccessException 

我得到了以下配置。

WEB-INF /春/ Web的应用程序的context.xml

<?xml version="1.0" encoding="UTF-8"?> 
<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" 
    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.3.xsd"> 

    <http auto-config='true'> 
     <intercept-url pattern="/index.html*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
     <intercept-url pattern="/index.jsp*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> 
     <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
     <form-login login-page='/jsp/loginform.jsp'/> 
    </http> 

    <authentication-manager> 
     <authentication-provider> 
      <user-service> 
       <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" /> 
       <user name="bob" password="bobspassword" authorities="ROLE_USER" /> 
      </user-service> 
     </authentication-provider> 
    </authentication-manager> 

</beans:beans> 

WEB-INF/web.xml中

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
    </listener> 

    <context-param> 
    <param-name>contextConfigLocation</param-name> 
     <param-value> 
     /WEB-INF/spring/web-application-context.xml 
     </param-value> 
    </context-param> 


    <filter> 
    <filter-name>myFilter</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    </filter> 

    <filter-mapping> 
    <filter-name>myFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping> 
+0

请加上你的pom。 – AHungerArtist 2010-09-15 20:31:29

回答

10

异常消息明确表示,类org.springframework.dao.DataAccessException丢失,因此你需要将org.springframework.transaction-*.jar添加到类路径(即到/WEB-INF/lib)。