Erro ao redicionar uma SecurityException para index (JSP + JSF)

0 respostas
felixcomputer

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

Criado 28 de janeiro de 2008
Respostas 0
Participantes 1