Como finalizar uma sessão no VRaptor 2 ?
EDITADO.: O problema persiste, por favor vejam o post abaixo de Paulo Silveira… a sulção que tinha pensado não esta funcionando…
Como finalizar uma sessão no VRaptor 2 ?
EDITADO.: O problema persiste, por favor vejam o post abaixo de Paulo Silveira… a sulção que tinha pensado não esta funcionando…
EDITADO: Achei que a solução iria dar conta, mas infelismente não esta, por favor vejam o post abaixo do Paulo Silveira.
acredito que lembrie de uma solução…
[code]@In
HttpSession session;
public void logout() {
if (session != null)
session.invalidate();
}
[/code]
se tiver uma forma mais legal de fazer, por favor digam ^^
é isso mesmo lavieri, via o invalidate.
Opa paulo blz ?? achei que ia ser simples assim… mas infelismente não esta sendo =/
recebo erro 500 e uma Exception esparramando na tela toda hora…
Achei que podia ser pq tinha outros @Outs que dependiam da Session, mas isolei totalmente a logica de logout e continua dando problema…
Pelo que percebi, no meio do VRaptor é checado se existem objetos na session: org.vraptor.scope.SessionContext.hasAttribute(SessionContext.java:53)
neste momento ele da algum getAttribute(), gerando uma IllegalStateException, que não foi esperada ou tratada, =/ gerando a exception.
Alguem com certeza já deve ter invalidado alguma Session no VRaptor, e deve ter uma solução para isto =/
e a solução não pode ser tão feia como:
logout.jsp
<%
if (request.getSession(false) != null)
request.getSession().invalidate();
response.sendRedirect(".");
%>
tem que ter um modo de fazer isso de dentro da logica.
meu properties esta assim: view.properties
Minha lógica esta assim:
[code]import javax.servlet.http.HttpSession;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.In;
@Component(“login”)
public class AutenticarOutLogic {
@In(required=false)
HttpSession session;
public void out() {
if (session != null)
session.invalidate();
}
}[/code]
meu erro é esse
[code]exception
javax.servlet.ServletException: java.lang.IllegalStateException: getAttribute: Session already invalidated
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:73)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.IllegalStateException: getAttribute: Session already invalidated
org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1032)
org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:110)
org.vraptor.scope.SessionContext.hasAttribute(SessionContext.java:53)
org.vraptor.scope.DefaultLogicRequest.findAttribute(DefaultLogicRequest.java:80)
org.vraptor.introspector.WebBeanProvider.findAttribute(WebBeanProvider.java:14)
org.vraptor.component.ComponentConstructor.newInstance(ComponentConstructor.java:37)
org.vraptor.interceptor.InterceptorType.newInstance(InterceptorType.java:66)
org.vraptor.interceptor.InterceptorDealer.poll(InterceptorDealer.java:62)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:58)
org.vraptor.interceptor.ExecuteLogicInterceptor.intercept(ExecuteLogicInterceptor.java:38)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.SettingAndValidationInterceptor.intercept(SettingAndValidationInterceptor.java:130)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.InjectionInterceptor.intercept(InjectionInterceptor.java:41)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.ComponentLookupInterceptor.intercept(ComponentLookupInterceptor.java:57)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.FlashScopeInterceptor.intercept(FlashScopeInterceptor.java:22)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.interceptor.RegisterAttributesInteceptor.intercept(RegisterAttributesInteceptor.java:47)
org.vraptor.core.InterceptorsLogicFlow.execute(InterceptorsLogicFlow.java:72)
org.vraptor.core.VRaptorExecution.execute(VRaptorExecution.java:97)
org.vraptor.core.DefaultController.execute(DefaultController.java:46)
org.vraptor.http.DefaultDispatcher.dispatch(DefaultDispatcher.java:44)
org.vraptor.VRaptorServlet.service(VRaptorServlet.java:48)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.
[/code]