繁体   English   中英

JSF - 基于角色的页面显示

[英]JSF - Role based pages display

我正在使用JSF 2.0和PrimeFaces启动一个Web应用程序项目。 其中一个要求是根据用户角色显示不同的页面内容。 例如,只有管理员才能看到菜单项 - 用户管理。

安全方面我会选择Spring安全。

怎么能以优雅的方式实现呢? 我应该为每个人制作一个xhtml模板,然后使用特定于角色的UI项为每个角色创建不同的页面吗?

谢谢

只需在组件中使用rendered + role check属性,例如子菜单:

<p:submenu label="#{msg['header.management']}" rendered="#{request.isUserInRole('INTERNO')}">
        <p:submenu label="#{msg['header.roles']}" icon="ui-icon-contact">
                <p:menuitem value="#{msg['header.newRole']}" url="/pages/addRole.jsf" />
            <p:menuitem value="#{msg['header.mngRoles']}" url="/pages/viewRole.jsf" />
</p:submenu>

作为'INTERNO'在Spring中定义的角色。 我觉得这很优雅。

要禁用该pafe(或页面集)的导航,您仍然需要向spring-security.xml添加拦截,例如:

<intercept-url pattern="/pages/*Role*" access="hasRole('INTERNO')" />

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM