Gwt 会话超时后基于表单的身份验证和请求静态资源出现问题

Gwt 会话超时后基于表单的身份验证和请求静态资源出现问题,gwt,j-security-check,Gwt,J Security Check,我们在GWT应用程序中使用了基于表单的身份验证,而我目前正在努力解决会话超时问题 如果用户登录并执行一个操作,该操作将在会话超时后触发对静态资源的请求,则会显示登录页面,当用户再次登录时,仅会向用户显示图像资源。例如,如果用户将鼠标悬停在某个按钮上,该按钮需要获取鼠标悬停时显示的图标 这是合乎逻辑的,因为登录页面是由图像请求触发的,但这并不是我们真正想要的行为。最好将用户重定向到他所在的页面,或者另一个页面 如何以更好的方式处理这一问题?据我所知,更改重定向url非常困难,j_security_

我们在GWT应用程序中使用了基于表单的身份验证,而我目前正在努力解决会话超时问题

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

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


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

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

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