【问题标题】:Issue with form based auth and requesting static resource after session timeout会话超时后基于表单的身份验证和请求静态资源的问题
【发布时间】:2014-12-26 07:20:39
【问题描述】:

我们在 GWT 应用程序中使用基于表单的身份验证,我目前正在为会话超时而苦苦挣扎。

如果用户登录并在会话超时后执行将触发静态资源请求的操作,则显示登录页面,当用户再次登录时,则仅显示图像资源给用户。例如,如果用户将鼠标悬停在按钮上,并且该按钮需要获取鼠标悬停时显示的图标。

这会发生是合乎逻辑的,因为登录页面是由对图像的请求触发的,但这并不是我们真正想要的行为。最好将用户重定向到他所在的页面,或者另一个页面。

如何以更好的方式处理这个问题?据我了解,更改重定向 url 非常困难,j_security_check 在成功登录后用于重定向用户。

【问题讨论】:

    标签: gwt j-security-check


    【解决方案1】:

    我解决它的方法是仅使用<security-constraint> 保护 HTML 主机页面。静态资源(图像、样式表、GWT 脚本)根本不受保护,AJAX 端点(GWT-RPC、RequestFactoryServlet 或其他使用 AJAX 从应用程序调用的端点)仅检查请求中是否存在用户 Principal (这可以在 servlet 过滤器或 RequestFactory ServiceLayerDecorator 中完成),否则返回错误(但不要触发登录页面)。

    您可以看到一个示例web.xmlhere,其中包含在 RequestFactory here 中处理安全性的代码(以及在客户端处理响应的代码 here)。对于 GWT-RPC,您可能会使用 servlet 过滤器和自定义 RpcRequestBuilder 或基本 AsyncCallback<?> 实现来实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-22
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2016-04-09
      • 2015-11-22
      • 2010-12-01
      • 1970-01-01
      相关资源
      最近更新 更多