我在考虑这样的解决方案:
- 用户的不同菜单取决于将包含的角色模板
- 适当的
sec:intercept-url
只访问那些专用于角色的页面,因此具有一个角色的用户将无法访问另一个角色的页面
你觉得这个解决方案怎么样?
masterLayout
看起来像:
<h:body>
<f:subview id="menuUser" rendered="#{sessionBean.user}">
<ui:include src="/WEB-INF/templates/menuBarUser.xhtml" />
</f:subview>
<f:subview id="menuAdmin" rendered="#{sessionBean.admin}">
<ui:include src="/WEB-INF/templates/menuBarAdmin.xhtml" />
</f:subview>
<ui:insert name="content" />
</h:body>
security-context.xml:
...
<sec:intercept-url pattern="/user/**" access="ROLE_USER" />
<sec:intercept-url pattern="/admin/**" access="ROLE_ADMIN" />
...
我不知道我是否理解了你的问题,但听起来你可以使用Spring Security Facelets标签库