代码之家  ›  专栏  ›  技术社区  ›  Mark Baijens

弹簧安全3.0.3配置错误

  •  2
  • Mark Baijens  · 技术社区  · 14 年前

    我正在尝试实现Spring安全性来处理我的Web应用程序的身份验证和授权。我无法正确配置。当我部署war文件时,Tomcat会出错。

    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/Spring/WEB-Application-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>
    
    1 回复  |  直到 14 年前
        1
  •  10
  •   axtavt    14 年前

    异常消息清楚地表明类 org.springframework.dao.DataAccessException 缺少,因此需要添加 org.springframework.transaction-*.jar 到类路径(即 /WEB-INF/lib )