[RESOLVIDO] Autenticação - Filter - erro e nada

Preciso fazer um sistema de login simples. Faz 3 semanas que estou pesquisando a respeito, vendo tutoriais, dicas, posts, e tudo + e até agora não consegui fazer :frowning:

No netbeans na hora de gerar um novo projeto tem “Exemplos” -> “Java WEB” -> JSF JPA (Java EE 5) esse exemplo deu um erro “infinito” quando eu rodo…

Achei também esse exemplo: http://www.devmedia.com.br/utilizando-servlet-filter-com-javaserver-faces/5331
que da pra faze o download do projeto, mais quando eu rodo da um erro infinito… o erro fica em loop rsrs

O que preciso é simples…
a pasta raiz /* tem acesso a todos os usuários
a pasta /adm/* acesso apenas a administradores
e a pasta /user/* com acesso aos usuarios registrados

são 2 níveis de usuários e a pasta raiz sem “validação”

o que estou montando é um “blog”…

se for possível alguém ajudar, eu estou começando pela parte de autenticação…

pra min não importa em que vou fazer, filter, spring security, jguard… tanto faz… quero o mais simples possível e rápido de se implementar !

Se for possível alguem ajudar, eu ficaria muito grato mesmo ! pois já estou nisso há 3 semanas e nada… (podem conferir outros posts meu e verá que é verdade)

Cara, aqui tem um exemplo que eu te garanto que funciona: Aplicação Web Completa JSF EJB JPA JAAS.

Mas você vai ter que abri mão do netbeans e utilizar Eclipse.

Tem o código fonte para você utilizar e a parte de login pronta.

E sério? Sair catando um monte de tutorial as vezes é nocivo. Você mesmo está sendo vítima disso.

O ideal seria você escolher algo e estudar em cima. Não precisa virar um mestre zen, mas você pode ter um bom conhecimento da ferramenta antes de começar a largar o dedo no desenvolvimento.

intão jakefrog, seu post foi o primeiro que vi… + ai tem um problema
meu pc eh “meio” ruizinho e o jboss fica meio pesado nele…
…eu baxei esse projeto seu + não consegui faze ele roda no netbeans + tomcat… na verdade foi o primeiro que tentei… ^^
achei ele muito bom… no eclipse + jboss funciono legal…
pra fala a verdade esse projeto ai seria “perfeito”… + não consegui fazer funcionar como queria :frowning:

tem um tutorial legal do Edson Goncalves sobre Spring Security… ve se ajuda
http://www.edsongoncalves.com.br/2010/04/25/seguranca-passo-a-passo-com-spring-security-3-0/

eu achei esse tuto aki… http://www.softwareengineeringsolutions.com/thoughts/frameworks/JSF.Techniques-PhaseListeners.htm

fiz ele certim… + não achei um lugar pra valida a página que eh pra valida ou nao rsrs
acho que seria a parte mais importante!

[quote=alves.Felipe]tem um tutorial legal do Edson Goncalves sobre Spring Security… ve se ajuda
http://www.edsongoncalves.com.br/2010/04/25/seguranca-passo-a-passo-com-spring-security-3-0/
[/quote]

Então esse tutorial ai eu tinha visto também… eu fiz ele (pra aprende mesmo) e deu certo… + o problema nele é que o usuário fica meio que “fixo” nessa parte:

<authentication-manager> <authentication-provider> <user-service> <user name="edson" password="integrator" authorities="ROLE_ADMIN" /> </user-service> </authentication-provider> </authentication-manager>

vc tem que ler a segunda parte do tuto…
http://www.edsongoncalves.com.br/2010/05/04/seguranca-com-spring-security-3-0-utilizando-banco-de-dados-em-apenas-alguns-minutos/
ali faz a integração com o banco…
nesse tb faz a integração com o bd: http://www.loiane.com/2010/01/tutorial-comecando-com-spring-security/

ainda tem algumas opções para deixar mais dinâmico…vc pode criar uma classe customizada…
http://www.ashishpaliwal.com/blog/2009/02/spring-security-–-implementing-custom-userdetails-using-hibernate/
http://www.codercorp.com/blog/spring/security-spring/writing-custom-userdetailsservice-for-spring-security.html

alves.Felipe ta vendo como é difícil encontrar um simples tutorial do começo ao fim ^^ rsrs…

Muito obrigado pelos links que você compartilhou… acredito que com esses links ai vai da tudo certo!

… se eu conseguir fazer funcionar tudo certinho vou postar aki o projeto com essa parte de autenticação.!

estou tentando fazer este método -> http://www.edsongoncalves.com.br/2010/05/04/seguranca-com-spring-security-3-0-utilizando-banco-de-dados-em-apenas-alguns-minutos/
segui o tutorial passo a passo…e acontece o seguinte erro:

GRAVE: Servlet.service() for servlet Faces Servlet threw exception java.lang.StackOverflowError at javax.servlet.http.HttpServletResponseWrapper.setStatus(HttpServletResponseWrapper.java:201) at com.sun.faces.application.ViewHandlerResponseWrapper.setStatus(ViewHandlerResponseWrapper.java:88) at javax.servlet.http.HttpServletResponseWrapper.setStatus(HttpServletResponseWrapper.java:201) at com.sun.faces.application.ViewHandlerResponseWrapper.setStatus(ViewHandlerResponseWrapper.java:88) at javax.servlet.http.HttpServletResponseWrapper.setStatus(HttpServletResponseWrapper.java:201) at com.sun.faces.application.ViewHandlerResponseWrapper.setStatus(ViewHandlerResponseWrapper.java:88) at javax.servlet.http.HttpServletResponseWrapper.setStatus(HttpServletResponseWrapper.java:201)
… ai fica repetindo e não para mais…

na página que abre (http://localhost:8085/TechSquare/login.jsp) ele da um java.lang.NullPointerException com o erro em anexo

obs.: estou usando um computador diferente das outras vezes.! com jre6 jdk6 netbeans6.9 e as outras vezes que eu tentei e deu o mesmo erro era o netbeans7 jdk7 jre7
obs2.: o que fiz diferente é que estou usando netbens… eu criei um novo projeto Java Web -> Aplicação Web -> Servidor Tomcat, Java EE 6 Web -> JSF 2.1 + Hibernate 3.2.5

se alguem puder me ajudar meu projeto ta aqui: http://j2diniz.com/projeto/

andei pesquisando e vi que tinha que adicionar essa lib: aspectjrt-1.5.4.jar
adicionei e agora apareceu a página pra fazer login… ja é um começo :smiley: ai quando eu digitei o usuário e senha conforme o applicationContext.xml:

<authentication-manager> <authentication-provider> <user-service> <user name="123" password="123" authorities="ROLE_ADMIN" /> </user-service> </authentication-provider> </authentication-manager>

antes de posta o erro… no console do apache aparece:
MonitorFilter::warning: the monitor filter must be the first filter in the chain.
MonitorFilter::warning: the monitor filter must be the first filter in the chain.

deu o erro: java.lang.NullPointerException

java.lang.NullPointerException at com.sun.faces.context.flash.ELFlash.loggingGetPhaseMapForReading(ELFlash.java:793) at com.sun.faces.context.flash.ELFlash.getPhaseMapForReading(ELFlash.java:826) at com.sun.faces.context.flash.ELFlash.isEmpty(ELFlash.java:484) at com.sun.faces.facelets.util.DevTools.writeVariables(DevTools.java:325) at com.sun.faces.facelets.util.DevTools.writeVariables(DevTools.java:215) at com.sun.faces.facelets.util.DevTools.debugHtml(DevTools.java:130) at com.sun.faces.renderkit.RenderKitUtils.renderHtmlErrorPage(RenderKitUtils.java:1159) at com.sun.faces.context.ExceptionHandlerImpl.throwIt(ExceptionHandlerImpl.java:269) at com.sun.faces.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:141) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 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:364) 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:410) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:90) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)

Consegui :smiley: :smiley:
aff… finalmente rsrs
no url-pattern do servlet-mapping do faces servlet tava *.jsp eu alterei pra *.xhtml e funciono :smiley:

pra funciona meus arquivos .xhtml normal posso deixar como está o web.xml?

Atualmente meu web.xml ta assim:

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


javax.faces.PROJECT_STAGE
Development


Faces Servlet
javax.faces.webapp.FacesServlet
1


Faces Servlet
*.xhtml



30



index.jsp

<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>
[/code]

Coloca isso tb no web.xml

<security-constraint>
		<display-name>
			Bloqueia o browser de acessar arquivos xhtml
		</display-name>
		<web-resource-collection>
			<web-resource-name>xhtml files</web-resource-name>
			<url-pattern>*.xhtml</url-pattern>
		</web-resource-collection>
		<auth-constraint />
	</security-constraint>

Meu problema foi resolvido :smiley:
porém no console do tomcat fica aparecendo toda hora:

MonitorFilter::WARNING: the monitor filter must be the first filter in the chain.
MonitorFilter::WARNING: the monitor filter must be the first filter in the chain.

Alguém sabe o motivo?
não consegui intender a mensagem

Conseguiu solucionar o problema do

MonitorFilter::WARNING: the monitor filter must be the first filter in the chain.

pois estou com o mesmo problema grato.

nada ainda rsrs
ta lá aparecendo