我有一个Vaadin 7应用程序,它使用我服务器的standalone.xml(jboss eap6)中配置的安全域对ldap进行身份验证。一切正常,直到我尝试退出。
在我的Vaadin用户界面中,我有一个退出方法:
public void logout(){
VaadinService.getCurrentRequest().getWrappedSession().invalidate();
this.close();
}
当我执行方法时,我收到消息:
SESSION EXPIRED记录任何未保存的数据,然后单击此处或按ESC键继续。
但是一旦我这样做刷新页面,我仍然登录
我还需要做些什么来正确关闭会话吗?
谢谢!
答案 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代码,问题就消失了。