【发布时间】:2013-10-16 07:07:02
【问题描述】:
我正在 Vaadin 7 中做一个项目。当用户会话到期时,我需要隐藏我的 UI(或禁用对 UI 的访问)。
我尝试覆盖
@Override
public void close() {
// some stuff to disable UI
}
但是,什么都没有发生。会话过期后是否可以禁用我的 UI 中的组件。
或在会话到期后隐藏我的 UI 的任何其他想法。
【问题讨论】:
-
“会话过期”是什么意思?如果你的意思是正常的 http 会话,那就太晚了,因为那时浏览器和关联实例之间的连接丢失了,所以你不能从服务器端更新它。我认为您必须决定如何在您的应用程序中关闭会话。让 http 会话过期会导致糟糕的用户体验,最好让会话保持打开状态,直到用户关闭它们。
-
为什么要关闭 UI?你遇到了什么问题?
-
@enkara 当用户第二次登录时,我手动关闭了用户会话。我希望关闭 UI,因为 UI 包含一些机密数据。
-
@AndréSchild 你是对的。但是,vaadin 的人说当会话到期vaadin.com/forum#!/thread/139230 时,方法 close() 将被调用。所以,我试图覆盖它来做我的事情。
-
不,在 close() 发生的那一刻,与浏览器的连接就完成了,所以你不能禁用 UI 组件。但是不要关闭会话,只需从屏幕上删除所有元素并显示一个简单的“您已被注销,因为......”消息。无需终止会话。
标签: session user-interface vaadin