【问题标题】:Redirect on session timeout tomcat 7重定向会话超时tomcat 7
【发布时间】:2012-12-12 00:23:24
【问题描述】:

我想在会话超时时立即将用户重定向回登录页面,而无需用户向服务器发送请求。 1. 是否有可以放在 web.xml 或 context.xml 中的配置标签来处理这个? /loginPage 之类的东西 2.如果没有,tomcat确实有这个是有原因的吗?它打破了什么契约? 3. 有没有办法使用tomcat、jaas和gwt来实现?

我尝试过使用 HttpSessionListener,但这不起作用,因为您不能(也许我不知道如何)从 Session 对象向用户发送重定向。我试过使用过滤器,但过滤器只有在有请求时才会被调用。

我对用户身份验证和网络内容还很陌生,所以希望我正确地提出了问题并且没有滥用术语。提前致谢。

【问题讨论】:

  • 我添加了我最初的不成功尝试来解决这个问题。我并不怀疑我的问题应该被否决,但没有解释为什么,否决票根本没有帮助。请让我知道是否还有其他可以帮助您帮助我的内容。
  • 这是标准的网络行为。服务器无法与客户端(浏览器)通信。必须启动的始终是浏览器,而服务器只能响应。

标签: gwt tomcat jaas


【解决方案1】:

嗯,基本上,服务器在使用标准 HTTP 协议时无法启动通信。您可以使用一些长轮询或服务器推送技术来破解这个问题。如果您使用的是 GWT,我建议您查看 Errai 框架。学习新事物的开销很大,但是您将能够使用 Errai 总线从服务器端通知用户。

【讨论】:

    【解决方案2】:

    您可以尝试这种 hacky 方法。这依赖于在会话关闭的用户上触发的第一个应用异步回调的失败

    服务器上的会话超时总是为用户的所有异步调用返回异常。您可以在 GWT 异步回调(应用程序中的所有异步回调)的故障块中捕获它,然后使用 Window 和 Navigator 类(com.google.gwt.user.client 包)从 GWT 代码重定向应用程序

    【讨论】:

      猜你喜欢
      • 2014-04-20
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多