Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf 2 JSF2导航处理程序_Jsf 2 - Fatal编程技术网

Jsf 2 JSF2导航处理程序

Jsf 2 JSF2导航处理程序,jsf-2,Jsf 2,我们使用JSF2和导航处理程序来控制web应用程序的公共页面和安全页面之间的导航 逻辑变得如此复杂,我们需要检查哪个页面是安全的,哪个页面是公共的 是否有任何框架或更好的方法来处理导航处理程序…通常,您将受保护的页面放在公共URL路径中,例如/app/*、/secured/*、/private/*等。这样,您就可以使用单个入口点来控制访问。如果正在使用,则需要指定正确的URL模式: <security-constraint> <web-resource-collecti

我们使用JSF2和导航处理程序来控制web应用程序的公共页面和安全页面之间的导航

逻辑变得如此复杂,我们需要检查哪个页面是安全的,哪个页面是公共的


是否有任何框架或更好的方法来处理导航处理程序…

通常,您将受保护的页面放在公共URL路径中,例如
/app/*
/secured/*
/private/*
等。这样,您就可以使用单个入口点来控制访问。如果正在使用,则需要指定正确的URL模式:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Restricted pages</web-resource-name>
        <url-pattern>/secured/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>
或者,当您还没有使用Servlet 3.0时,请按如下方式注册它,而不是使用
@WebFilter

<filter>
    <filter-name>authorizationFilter</filter-name>
    <filter-class>com.example.AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>authorizationFilter</filter-name>
    <url-pattern>/secured/*</url-pattern>
</filter-mapping>

授权过滤器
com.example.AuthorizationFilter
授权过滤器
/安全的/*
doFilter()
方法中,您需要编写代码来检查用户是否登录,然后继续链或将响应重定向到登录页面(当然,该页面本身不包含在相同的URL模式中)

另见:

我们可以在过滤器中使用JSF托管bean吗?请查看我回答下面的“另请参阅”链接,以获得更具体的过滤器示例和此相关链接:jsf2是否支持servlets3.0此支持不特定于JSF。这种支持是特定于容器的。JSF2.0至少需要Servlet2.5,因此可以在Servlet3.0或更高版本上正常工作。Servlet 3.0容器是Tomcat 7、Glassfish 3、JBoss AS 6等。如果您已经有了它,但似乎无法利用新的Servlet 3.0特性,那么请确保
web.xml
声明为符合Servlet 3.0版本。
<filter>
    <filter-name>authorizationFilter</filter-name>
    <filter-class>com.example.AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>authorizationFilter</filter-name>
    <url-pattern>/secured/*</url-pattern>
</filter-mapping>