2013-04-12 12 views
10

Próbuję napisać aplikację, używając Spring 3.1.2-Release. Serwer aplikacji to Tomcat 7. Kiedy uruchomić serwer dostaję ten błąd:Spring: startowy filtr wyjątków springSecurityFilterChain

ciężkie: Wyjątek począwszy filtra springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: Bez

fasoli nazwie 'springSecurityFilterChain' jest zdefiniowane w org. springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition (DefaultListableBeanFactory.java:553) w org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition (AbstractBeanFactory.java:1095) w org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:277) w org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) w org.springframework .context.support.AbstractApplicationContext.getBean (AbstractApplicationContext.java:1102)

Oto moje pliki konfiguracyjne:

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> 

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

To

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

Jakieś pomysły?

Odpowiedz

9

Brakuje wpis security-config.xml w web.xml

Może trzeba coś takiego:

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

po linii

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

w web.xml

+0

Dziękuję za odpowiedź. Naprawdę zapomniałem zaimportować 'security-config.xml' w moim' root-config.xml', gdzie miałem inny import dla ''. –

+0

Zadziałało !!! : D –

+0

Używam tylko konfiguracji Java. po tym blogu http://codehustler.org/blog/spring-security-tutorial-form-login-java-config/ Otrzymuję powyższe błędy, wypróbowałem wszystkie konfiguracje, ale bez pomocy, również wypróbowałem to w onStartup() DelegatingFilterProxy springSecurityFilterChain = new DelegatingFilterProxy("springSecurityFilterChain"); Dynamic registration = servletContext.addFilter("springSecurityFilterChain", springSecurityFilterChain); registration.addMappingForUrlPatterns(null,false, "/*"); Daj mi znać, co może być problemem. – 89n3ur0n

Powiązane problemy