[RESOLVIDO] jsf2 + spring security erro

Por 2 semanas pesquisei e li sobre autenticação.
Nesta semana abri este tópico (http://guj.com.br/java/268722-autenticacao---filter---erro-e-nada) e consegui fazer a autenticação funcionar no meu projeto.
Estou usando spring security e jsf2.0 em um projeto criado no netbeans 7.1.1.
Substitui as 2 libs do mojarra pra versão mais antiga devido ao erro que pede pra por dentro do <h:form e talz…
Em fim… ta funcionando e validando certim, porém está dando erro no console do tomcat e não para mais…

O primeiro erro e menos grave, na verdade acho que não é nada de mais é este:

INFO: Initialization processed in 459 ms 28/03/2012 13:32:14 org.apache.catalina.core.StandardService startInternal INFO: Starting service Catalina 28/03/2012 13:32:14 org.apache.catalina.core.StandardEngine startInternal INFO: Starting Servlet Engine: Apache Tomcat/7.0.22 28/03/2012 13:32:14 org.apache.catalina.startup.HostConfig deployDescriptor INFO: Deploying configuration descriptor Geliv.xml from C:\Users\alan\.netbeans\7.1\apache-tomcat-7.0.22.0_base\conf\Catalina\localhost 28/03/2012 13:32:14 org.apache.catalina.core.StandardContext resourcesStart GRAVE: Error starting static Resources java.lang.IllegalArgumentException: Document base D:\BKP\ALAN\ProjetoTechSquare\projeto\build\web does not exist or is not a readable directory at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:140) at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4836) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5016) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:633) at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:558) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1329) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:389) at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:334) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1041) at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033) at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148) at org.apache.catalina.startup.Catalina.start(Catalina.java:621) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)

Esse segundo log só pra ter uma ideia passo de 500mb
O Segundo erro e com maior ‘importância’ é este abaixo. Eu postei só um poco dele… na verdade ele continua imprimindo a ultima linha e não para mais…:

28/03/2012 11:45:24 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
28/03/2012 11:45:25 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
28/03/2012 11:45:29 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
28/03/2012 11:45:42 org.apache.catalina.core.ApplicationDispatcher invoke
GRAVE: Servlet.service() for servlet Faces Servlet threw exception
java.lang.StackOverflowError
	at javax.servlet.ServletRequestEvent.<init>(ServletRequestEvent.java:41)
	at javax.servlet.ServletRequestAttributeEvent.<init>(ServletRequestAttributeEvent.java:48)
	at org.apache.catalina.connector.Request.setAttribute(Request.java:1568)
	at org.apache.catalina.connector.RequestFacade.setAttribute(RequestFacade.java:543)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)
	at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:281)

ai tem uma hora que começa a aparecer isso aqui:

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546) at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363) at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546) at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363) at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:546) at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363) at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:154) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100) 28/03/2012 11:45:42 org.apache.catalina.core.ApplicationDispatcher invoke GRAVE: Servlet.service() for servlet Faces Servlet threw exception java.lang.StackOverflowError
e depois repete tudo denovo…

abaixo meu web.xml:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Production</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <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> </web-app>

e meu login.xhtml:

[code]


<h:outputText styleClass=“cor” value=“Seu e-mail”/>
<h:outputText styleClass=“vermelho” style=“font-size: 12px;” value=" (campo obrigatório)" />



                            <div style="float: right; margin-bottom: 20px;">
                                <h:outputText styleClass="cor" value="Sua senha"/>
                                <h:outputText styleClass="vermelho" style="font-size: 12px;" value=" (campo obrigatório)" />
                                <br/>
                                <input name="j_password" type="text" style="width: 300px;"/>
                            </div>  

                            <input type="submit" value="Efetuar Login"/>
                            <div class="clear"/>                                
                        </form>[/code]

e meu applicationContext.xml:<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> <http auto-config="true" access-denied-page="/negado.jsp"> <form-login login-page="/login.xhtml"/> <intercept-url pattern="/admin/**" access="ROLE_ADMIN" /> <intercept-url pattern="/usuario/**" access="ROLE_USER" /> </http> <authentication-manager> <authentication-provider> <jdbc-user-service data-source-ref="dataSource" users-by-username-query="SELECT username, password, 'true' as enable FROM Usuario WHERE username=?" authorities-by-username-query="SELECT username, authority FROM Usuario WHERE username=?" /> </authentication-provider> </authentication-manager> <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <beans:property name="url" value="jdbc:mysql://localhost:3306/tech" /> <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" /> <beans:property name="username" value="root" /> <beans:property name="password" value="root" /> </beans:bean> </beans:beans>

Bom dia

Estranho.

Por esse log parece que não ta ocorrendo nenhum erro com o spring security.

Document base D:\BKP\ALAN\ProjetoTechSquare\projeto\build\web does not exist or is not a readable directory

Você criou o diretorio *\web ao criar o projeto ?

Ele está falando que não existe

Esse stackOverflowError é estranho.

Tem mais alguma classe no seu projeto?

1 - o erro do coument base… nao sei pq ele ta pegando essa pasta ai… pq o projeto ta no C:\Users\alan\Documents\NetBeansProjects\TechSquare

2 - nao tem nenhuma classe .java no projeto… é apenas xhtml e spring security… :S

RESOLVIDO:
era o jsf
aqui eu tinha colocado

Faces Servlet
.xhtml
.jsp

e quando eu tirei a linha: *.jsp resolveu o problema :smiley:

[quote]Bom dia

Estranho.

Por esse log parece que não ta ocorrendo nenhum erro com o spring security.

Document base D:\BKP\ALAN\ProjetoTechSquare\projeto\build\web does not exist or is not a readable directory

Você criou o diretorio *\web ao criar o projeto ?

Ele está falando que não existe

Esse stackOverflowError é estranho.

Tem mais alguma classe no seu projeto? [/quote]