"No bean named 'springSecurityFilterChain' is defined"

Pessoal, boa tarde!

Antes de mais nada, eu estou desde segunda feira (hoje é quarta) tentando fazer isso, já pesquisei no google e aqui mesmo, já tentei tudo o que eu podia, mas não consegui.

Seguinte: estou tentando juntar JSF com Spring Security, mas sempre esbarro nesse errro:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined

Meu web.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
						http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" 
	version="3.0">
	
	<display-name>Sfohart</display-name>


	<!-- The master configuration file for this Spring web application -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			classpath:/WEB-INF/spring/web-application-config.xml classpath:/WEB-INF/spring/security-config.xml			
		</param-value>
	</context-param>

	<!-- Configure ContextLoaderListener to use AnnotationConfigWebApplicationContext 
		instead of the default XmlWebApplicationContext -->
	<context-param>
		<param-name>contextClass</param-name>
		<param-value>
			org.springframework.web.context.support.AnnotationConfigWebApplicationContext
		</param-value>
	</context-param>
	
	<!-- Use JSF view templates saved as *.xhtml, for use with Facelets -->
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>

	<!-- Enables special Facelets debug output during development -->
	<context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Development</param-value>
	</context-param>

	<!-- Causes Facelets to refresh templates during development -->
	<context-param>
		<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
		<param-value>1</param-value>
	</context-param>
	
	<context-param>
		<param-name>org.richfaces.SKIN</param-name>
		<param-value>#{skinBean.skin}</param-value>
	</context-param>

	<context-param>
		<param-name>org.richfaces.ENABLE_CONTROL_SKINNING</param-name>
		<param-value>#{skinBean.enableElementsSkinning}</param-value>
	</context-param>

	<context-param>
		<param-name>org.richfaces.ENABLE_CONTROL_SKINNING_CLASSES</param-name>
		<param-value>#{skinBean.enableClassesSkinning}</param-value>
	</context-param>

	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>client</param-value>
	</context-param>

	<context-param>
		<param-name>javax.faces.PROJECT_STAGE</param-name>
		<param-value>Development</param-value>
	</context-param>

	


	<!-- Enables Spring Security -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>
            org.springframework.web.filter.DelegatingFilterProxy
        </filter-class>
    </filter>

    <filter>
        <filter-name>encoding-filter</filter-name>
        <filter-class>
            org.springframework.web.filter.CharacterEncodingFilter
        </filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
    </filter>

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

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



	<!-- Loads the Spring web application context -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<listener>
		<listener-class>
			org.springframework.web.context.request.RequestContextListener</listener-class>
	</listener>

	<!-- - Publishes events for session creation and destruction through the 
		application - context. Optional unless concurrent session control is being 
		used. -->
	<listener>
		<listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
	</listener>

	
	<!-- Just here so the JSF implementation can initialize, *not* used at runtime -->
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Just here so the JSF implementation can initialize -->
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
</web-app>

Meu web-application-config.xml está assim:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd">


	<!-- Activates annotation-based bean configuration -->
	<context:annotation-config />

	<!--
		Imports the configurations of the different infrastructure systems of
		the application
	-->
	<import resource="security-config.xml" />	
	<import resource="data-access-config.xml" />
	<!-- 
		<import resource="classpath:WEB-INF/config/data-access-config.xml" />
		<import resource="classpath:WEB-INF/config/process-config.xml" />
		<import resource="webflow-config.xml" />
		<import resource="classpath:WEB-INF/config/service-config.xml" />
	-->

</beans>

E meu security-config.xml está assim

<?xml version="1.0" encoding="UTF-8"?>

<!--
  - Sample namespace-based configuration
  -
  -->

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


	<global-method-security secured-annotations="enabled" />

	<http auto-config='true' >
		<intercept-url pattern="/css/**" filters="none" />
		<intercept-url pattern="/login.jsp*" filters="none" />
		<intercept-url pattern="/secure/**" access="ROLE_USER" 	requires-channel="https" />
		<intercept-url pattern="/**" access="ROLE_USER"			requires-channel="any" />

		<form-login login-page='/login.jsp' default-target-url='/home.jsp' />

		<!-- Controle de sessão. Controla sexões expiradas e a quantidade máxima 
			de sessões concorrentes -->
		<session-management invalid-session-url="/sessionTimeout.jsp">
			<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
		</session-management>

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

Não sei o que pode estar errado, já tentei de tudo o que foi jeito… Alguém poderia me ajudar?

Obrigado

Bem, resolvi seguir a técnica do Jack Estripador…

Removi TUDO tanto do web.xml quanto do security-config.xml, de modo que eles ficassem apenas com o seguinte código:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
						http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" 
	version="3.0">
	
	<display-name>Sfohart</display-name>


	<!-- The master configuration file for this Spring web application -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
			classpath:/WEB-INF/spring/web-application-config.xml classpath:/WEB-INF/spring/security-config.xml			
		</param-value>
	</context-param>

	<!-- Enables Spring Security -->
    <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>

	
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
</web-app>

security-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
  - Sample namespace-based configuration
  -
  -->

<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' />
 	
	<authentication-manager>
		<authentication-provider>
			<user-service>
				<user name="usuario" password="senha" authorities="ROLE_USER, ROLE_ADMIN" />				
			</user-service>
		</authentication-provider>
	</authentication-manager>

</beans:beans>

E aquele erro não acontecia mais. O que me deixa na dúvida se o erro tinha alguma coisa a ver com o AnnotationConfigWebApplicationContext que eu puz no web.xml

...
 <!-- Configure ContextLoaderListener to use AnnotationConfigWebApplicationContext   
         instead of the default XmlWebApplicationContext -->  
     <context-param>  
         <param-name>contextClass</param-name>  
         <param-value>  
             org.springframework.web.context.support.AnnotationConfigWebApplicationContext  
         </param-value>  
     </context-param>
...

Agora eu vou recolocar todos os outros parametros de configuração que eu havia posto antes, para ver se tudo continua funcionando como antes.

OBS.: É, eu sei, pode até ter sido BO meu. Mas é melhor postar a solução pra esse meu BO a deixar mais gente com o mesmo BO se batendo por ai :slight_smile:
Obrigado a todos

Fala cara blz!

To esse bendito erro aqui também mas, acho que a causa é diferente da sua, vou dar uma analisada mas minhas confs para ver o que pode estar causando ele e posto minhas considerações também, para ajudar o próximo com o mesmo problema. :frowning: