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

时间:2011-07-04 11:27:41

标签: java web-applications authentication jsf-2

目前使用:JBoss 6(GlassFish 3.1开发),JSF 2.0,基于表单的JAAS身份验证(没有“公共”页面,一切都需要身份验证)。

网络应用程序提供两个不同的搜索页面(如search1.jsfsearch2.jsf),可从index.jsf访问,但对于不属于具有其他权限的特殊角色的用户,search2 .jsf一定不能访问。

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

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

1 个答案:

答案 0 :(得分:4)

  

还有其他方法可以动态保护第二个搜索页面,无论是基于角色还是基于特定于用户的属性,这些属性不会引入其他身份验证框架或特定于容器的功能?

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

E.g。

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

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

然后只用search.xhtml打开页面。