防止直接访问JSF中的某些页面



我想限制对应用程序中某些页面的直接访问。只有当应用程序将用户重定向到这些页面时,才能访问这些页面。

所有重定向都是通过ExternalContext#redirect(url)方法完成的。

用户可以使用后退和前进按钮,也可以按F5或通过浏览器的刷新按钮刷新页面。我想要的是用户不能保存,或者将某些页面的URL添加到书签中,也不能复制那些重新划分的URL并粘贴到浏览器的地址栏中。

情况如下:

  • 比方说,我有A页和B页
  • 重定向已从A页重定向到B页
  • 用户可以返回到A页,也可以使用浏览器的后退和前进按钮再次返回到B页
  • 用户可以刷新B页,他/她将留在B页
  • 用户不能复制B页的URL,以后再访问(在新选项卡中或通过书签)

这可行吗?任何指针对我都很有帮助。

我认为JSF不能做到这一切
显而易见的替代方案是使用Javascript
我从来没有在浏览器中使用Javascript禁用书签选项的概念。但是,如果在新窗口中打开页面,则可以始终禁用地址字段。

你可以用解决它

JSF导航处理程序-从以前的某个页面设置一个会话属性,并在一段时间后使用计时器使该值过期。从处理程序impl检查属性的值并限制访问,例如,如果值不存在,则重定向到其他页面。

您可以使用web框架实现类似的行为。强制控制导航是大多数WEB FX的基本功能,例如JBoss-Seam对话或Spring WEB Flow控制导航实现。

最新更新