编程语言
首页 > 编程语言> > java-JSF 2-页面访问取决于用户角色

java-JSF 2-页面访问取决于用户角色

作者:互联网

当前使用的是:JBoss 6(在GlassFish 3.1上开发),JSF 2.0,带有JAAS的基于表单的身份验证(没有“公共”页面,所有内容都需要身份验证).

该Web应用程序提供了两个不同的搜索页面(如search1.jsf和search2.jsf),可从index.jsf进行访问,但是对于不属于具有附加权限的特殊角色的用户,必须不能访问search2.jsf.

保护search2.jsf的“标准”方法是web.xml中的配置,该配置要求该页面具有特殊的用户角色.是否有其他方法可以基于角色或基于用户特定的属性来动态保护第二个搜索页面,而不会引入其他身份验证框架或特定于容器的功能?

禁用index.jsf中指向search2.jsf的链接很容易,但是用户可以在浏览器中输入第二个搜索页面的URL来查看它(因此对于原型,我将调整web.xml).

解决方法:

Are there other ways to protect the second search page dynamically, either based on a role or based on user-specific attributes, which do not introduce additional authentication frameworks or container-specific features?

您可以在< ui:include>中使用EL.创建一个公共主search.xhtml页面,其中包括search1.xhtml或search2.xhtml,具体取决于用户角色.

例如.

<ui:include src="/WEB-INF/search#{request.isUserInRole('admin') ? 1 : 2}.xhtml" />

(那些包含文件放在/ WEB-INF中,以便客户端无法直接请求它)

然后,仅通过search.xhtml打开页面.

标签:authentication,web-applications,jsf-2,java
来源: https://codeday.me/bug/20191102/1991539.html