2014-11-24 37 views
0

我有一個Vaadin 7應用程序,它使用在我的服務器的standalone.xml(jboss eap6)中配置的安全域對LDAP進行身份驗證。一切工作正常,直到我嘗試註銷。如何在Vaadin 7 aplication中使會話失效?

在我的Vaadin UI我有一個註銷方法:

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

當我執行的方法我得到的消息:

session過期採取任何未保存的數據的音符,並點擊此處或按ESC鍵繼續。

,但一旦我做刷新頁面,我仍然記錄在

還有什麼我需要做的正確關閉會話?

謝謝!

+0

[如何重新啓動Vaadin會話?](http://stackoverflow.com/questions/26404821/how-to-restart-vaadin-session) – Krayo 2014-11-25 08:12:10

回答

0

我認爲你的問題是你不能關閉應用程序,因爲你剛剛使會話失效。嘗試在使會話無效之前關閉應用程序。類似這樣的:

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

問題不在於我在Vaadin關閉會話的方式。問題是Jboss保持ldap用戶認證。所以在我結束會議後

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

我會以某種方式得到一個新的會話ID,但服務器保持用戶身份驗證。我使用相同的代碼片段來註銷,但在我的應用程序中管理ldap登錄。由於我不使用jboss安全域,而是使用我自己的登錄屏幕通過代碼違背ldap,所以問題消失了。