2013-04-12 5 views
10

Ich versuche, eine Anwendung mit Spring 3.1.2-Release zu schreiben. App-Server ist Tomcat 7. Wenn ich den Server zu starten bekomme ich diesen Fehler:Spring: Ausnahme Startfilter springSecurityFilterChain

SCHWEREN: Ausnahme Ausgangsfilter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Keine

Bean mit dem Namen 'springSecurityFilterChain' bei org definiert ist. springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition (DefaultListableBeanFactory.java:553) bei org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition (AbstractBeanFactory.java:1095) bei org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:277) bei org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) bei org.springframework .context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.java:1102)

Hier sind meine Konfigurationsdateien:

web.xml 
<display-name>myTest</display-name> 

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

<context-param> 
    <param-name>defaultHtmlEscape</param-name> 
    <param-value>true</param-value> 
</context-param> 

<!-- Creates the Spring Container shared by all Servlets and Filters --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<listener> 
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class> 
</listener> 

<!-- Processes application requests --> 
<servlet> 
    <servlet-name>springTest</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>springTest</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

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

<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

Dies ist root-context.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:c="http://www.springframework.org/schema/c" xmlns:context="http://www.springframework.org/schema/context" 
xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:util="http://www.springframework.org/schema/util" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd 
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"> 


<context:annotation-config /> 

<context:component-scan base-package="com.myTest.db.entities"/> 
<context:component-scan base-package="com.myTest.services"/> 
<context:component-scan base-package="com.myTest.web"/> 

<import resource="mvc-config.xml" /> 

Dies ist

security-config.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" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
        http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd"> 

<!-- Additional filter chain for normal users, matching all other requests --> 
<http pattern="/resources/**" security="none" /> 

<http use-expressions="true"> 
    <intercept-url pattern="/login" access='isAnonymous()' requires-channel='http' />  
    <intercept-url pattern="/" access='permitAll' requires-channel='http'/> 
    <intercept-url pattern='/**' access='isAuthenticated()' requires-channel='http'/> 
    <form-login login-page="/login" authentication-failure-url="/login" default-target-url="/welcome" /> 
    <access-denied-handler ref="accessDeniedHandler" /> 
    <logout logout-url="/logout" logout-success-url="/" /> 
</http> 

<beans:bean id="accessDeniedHandler" class="org.springframework.security.web.access.AccessDeniedHandlerImpl"> 
    <beans:property name="errorPage" value="/WEB-INF/pages/error.jsp"/> 
</beans:bean> 

<authentication-manager> 
    <authentication-provider user-service-ref="userAuthenticationService"> 
     <password-encoder hash="sha-256"> 
      <salt-source user-property="salt" /> 
     </password-encoder> 
    </authentication-provider> 
</authentication-manager> 

<!-- User Detail Services --> 
<beans:bean id="userAuthenticationService" class="com.myTest.security.AuthenticationServiceImpl" /> 

Irgendwelche Ideen?

Antwort

9

Sie sind fehlende Sicherheits-config.xml Eintrag in web.xml

Sie können so etwas wie dieses benötigen:

<param-value>/WEB-INF/spring/security-config.xml</param-value> 

nach der Linie

<param-value>/WEB-INF/spring/root-context.xml</param-value> 

in web.xml

+0

Vielen Dank für die Antwort. Ich habe wirklich vergessen, 'security-config.xml' in meine' root-config.xml' zu importieren, wo ich einen anderen Import für '' hatte. –

+0

Es hat funktioniert !!! : D –

+0

Ich benutze nur Java Config. Nach diesem Blog http://codehustler.org/blog/spring-security-tutorial-form-login-java-config/ bekomme ich oben Fehler, ich habe alle Konfigurationen ausprobiert aber keine Hilfe, habe dies auch in onStartup() DelegatingFilterProxy springSecurityFilterChain = new DelegatingFilterProxy("springSecurityFilterChain"); Dynamic registration = servletContext.addFilter("springSecurityFilterChain", springSecurityFilterChain); registration.addMappingForUrlPatterns(null,false, "/*"); versucht Bitte lassen Sie mich wissen, was das Problem sein könnte – 89n3ur0n