阻止直接访问JSF中的某个页面

时间:2013-08-16 20:01:35

标签: jsf url jsf-1.2 url-redirection

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

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

用户可以使用后退和前进按钮,也可以通过按F5或浏览器的刷新按钮刷新页面。我想要的是用户无法保存或标记某些页面的URL,也无法复制那些重新分发的URL并粘贴并通过浏览器的地址栏进行访问。

以下是案例:

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

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

2 个答案:

答案 0 :(得分:0)

我认为你无法从JSF那里做到这一切 你明显的选择是使用Javascript 我从来没有在浏览器中使用Javascript禁用书签选项的概念。但是,如果在新窗口中打开页面,则始终可以禁用地址字段。

答案 1 :(得分:0)

你可以用

解决它

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

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

相关问题