如何使Vaadin 7应用程序中的会话无效?

时间:2014-11-24 17:37:05

标签: session jboss vaadin7

我有一个Vaadin 7应用程序,它使用我服务器的standalone.xml(jboss eap6)中配置的安全域对ldap进行身份验证。一切正常,直到我尝试退出。

在我的Vaadin用户界面中,我有一个退出方法:

public void logout(){
    VaadinService.getCurrentRequest().getWrappedSession().invalidate();
    this.close();
}

当我执行方法时,我收到消息:

  

SESSION EXPIRED记录任何未保存的数据,然后单击此处或按ESC键继续。

但是一旦我这样做刷新页面,我仍然登录

我还需要做些什么来正确关闭会话吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我认为您的问题是您无法关闭应用程序,因为您刚刚使会话无效。在无效会话之前尝试关闭应用程序。像这样:

public void logout(){
    HttpSession ses = VaadinService.getCurrentRequest().getWrappedSession();
    this.close();
    ses.invalidate();
}

答案 1 :(得分:0)

问题不在于我在Vaadin关闭会话的方式。问题是Jboss保持ldap用户的身份验证。在我用

结束会议之后
public void logout(){
    VaadinService.getCurrentRequest().getWrappedSession().invalidate();
    this.close();
}

我会以某种方式获得一个新的会话ID,但服务器保持用户身份验证。我使用相同的代码片段解决了它,但是从我的应用程序中管理ldap登录。由于我没有使用jboss安全域,而是使用我自己的登录屏幕来代替ldap代码,问题就消失了。