2013-04-12 20 views
10

Sto provando a scrivere un'applicazione utilizzando Spring 3.1.2-Release. Il server delle applicazioni è Tomcat 7. Quando avvio il server ottengo questo errore:Molla: molla filtro di inizio eccezioneSecurityFilterChain

GRAVI: eccezione di partenza filtro springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No

fagiolo di nome 'springSecurityFilterChain' è definito in org. springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition (DefaultListableBeanFactory.java:553) a org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition (AbstractBeanFactory.java:1095) a org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:277) a org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) a org.springframework .context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.java:1102)

qui sono i miei file di configurazione:

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> 

Questo è 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" /> 

Questo è

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" /> 

Tutte le idee?

risposta

9

Ti manca la voce di sicurezza-config.xml in web.xml

Potrebbe essere necessario qualcosa di simile:

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

dopo la linea di

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

in web.xml

+0

Grazie per la risposta. Ho davvero dimenticato di importare 'security-config.xml' nel mio' root-config.xml' dove avevo altre importazioni per ''. –

+0

Ha funzionato !!! : D –

+0

Sto usando la sola configurazione di java. seguendo questo blog http://codehustler.org/blog/spring-security-tutorial-form-login-java-config/ Sto ottenendo errori sopra, ho provato tutte le configurazioni ma di nessun aiuto, ho anche provato questo in onStartup() DelegatingFilterProxy springSecurityFilterChain = new DelegatingFilterProxy("springSecurityFilterChain"); Dynamic registration = servletContext.addFilter("springSecurityFilterChain", springSecurityFilterChain); registration.addMappingForUrlPatterns(null,false, "/*"); Per favore fatemi sapere quale potrebbe essere il problema – 89n3ur0n