Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过直接使用浏览器导航防止JSF应用程序中的页面导航?_Java_Jsf - Fatal编程技术网

Java 如何通过直接使用浏览器导航防止JSF应用程序中的页面导航?

Java 如何通过直接使用浏览器导航防止JSF应用程序中的页面导航?,java,jsf,Java,Jsf,我有一个关于jsf页面导航的问题。我如何才能以这种方式配置jsf应用程序,即在成功登录后,导航的唯一方式进入页面“list.xhtml” 现在我了解了当前的情况(我正在使用JSF2.x PrimeFaces和Glassfish应用服务器): 我的用户导航到我的登录页面。达到这一点的唯一方法是在浏览器url中插入:“localhost:8080/myApp。现在我的用户看到登录页面,必须是insert username和userpasswort 当我的用户看到登录页面时,可以在浏览器url列中插入

我有一个关于jsf页面导航的问题。我如何才能以这种方式配置jsf应用程序,即在成功登录后,导航的唯一方式进入页面“list.xhtml”

现在我了解了当前的情况(我正在使用JSF2.x PrimeFaces和Glassfish应用服务器):

  • 我的用户导航到我的登录页面。达到这一点的唯一方法是在浏览器url中插入:“localhost:8080/myApp。现在我的用户看到登录页面,必须是insert username和userpasswort

  • 当我的用户看到登录页面时,可以在浏览器url列中插入另一个页面导航路径,如“localhost:8080/myApp/myPath/resultcalculation.xhtml”

  • 现在浏览器url列包含“localhost:8080/myApp/myPath/resultcalculation.xhtml”,用户插入loginname和loginpasswort,并将直接导航到页面“resultcalculation.xhtml”

  • 但这是一种可怕的情况。必须将用户导航到“localhost:8080/myApp/myPath/list.xhtml”路径中的页面“list.xhtml”。不能通过直接使用浏览器url列在我的应用程序中导航他


    我怎样才能防止用户这样做呢?他应该只使用导航,我在xhtml页面中用jsf组件开发了导航,如

    相关:你不能阻止它,你对客户端没有权限,你也不应该这样做。你最多可以正确地设计你的web应用程序,让用户重新登录如果他/她不应该在某个地方,则将其删除或阻止。好的,但我如何设置这种重定向?在faces config.xml中?您可以这样做。您可以在会话中存储“from”页面,并在“to”页面上检查它。如果无效,则从“redirect to”页面转到“some”。为此,您可以使用javascript检查或筛选。是的,这是可能的,但这是大量的额外工作和非常小的积极作用的应用。通常,应用程序分为两部分:登录用户和非登录用户(对于99%的真实word案例来说,这已经足够了)。您的应用程序需要一个授权机制,以便只有登录用户才能查看列表。因此,您需要创建一个用户筛选器,或者使用会话属性并检查用户是否已登录,如果他直接导航到登录页面以外的页面,并且如果他已正确验证,他可以看到它,否则您将他重定向到登录页面。