1

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

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

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

以下为案例:

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

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

4

2 回答 2

0

我不认为你可以从 JSF 做到所有这些。
您明显的替代方法是使用 Javascript。
我从来没有使用 Javascript 在浏览器中禁用书签选项的概念。但是,如果您在新窗口中打开页面,您始终可以禁用地址字段。

于 2013-08-17T02:49:14.407 回答
0

You can solve it with

JSF Navigation Handler - set a session attribute from some previous page and expire the value after some time with a timer. From the Handler impl check the value of the attribute and restrict access e.g. redirect to some other page in case the value is not present.

You can achieve similar behaviour with web frameworks. Enforcing controlled navigation is a basic feature in most WEB FXs e.g. JBoss Seam conversations or Spring Web Flow controlled navigation implementations.

于 2013-08-17T06:42:53.433 回答