Pessoal, eu tenho uma pagina de login e senha, quando o usuário desloga do sistema, eu invalido a sessão…
Mas se o usuário tentar acessar akela página direto no browser, eu verifico a situação do usuário, se está logado…
se naum estiver eu lanço uma SecurityException…
No web.xml eu mandei redirecionar essa exceção para o meu index:
web.xml
<error-page>
<exception-type>java.lang.SecurityException</exception-type>
<location>/faces/index.jsp</location>
</error-page>
minha pagina
<head>
<h:inputHidden value="#{usuarioDAO.logado}"/>
...
ManagedBean
public String getLogado() {
if (usuarioValido)
setLogado(Constantes.logado);
else {
setLogado(Constantes.sair);
throw new SecurityException();
}
return logado;
}
Exceção
exception
javax.servlet.ServletException: /conectado.jsp(16,8) '#{usuarioDAO.logado}' Error reading 'logado' on type br.com.ciakairos.dao.UsuarioDAO
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
root cause
org.apache.jasper.el.JspELException: /conectado.jsp(16,8) '#{usuarioDAO.logado}' Error reading 'logado' on type br.com.ciakairos.dao.UsuarioDAO
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:107)
javax.faces.component.UIOutput.getValue(UIOutput.java:173)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:896)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
root cause
java.lang.SecurityException
br.com.ciakairos.dao.UsuarioDAO.getLogado(UsuarioDAO.java:176)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
org.apache.el.parser.AstValue.getValue(AstValue.java:97)
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
javax.faces.component.UIOutput.getValue(UIOutput.java:173)
com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:189)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:320)
com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:200)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:833)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:896)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:244)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:175)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
Alguém pode me dar uma ajuda com isso?
obrigado