我在我的but应用程序中隐藏了一些链接,这取决于用户roles...Now。例如,我在角色等于1的用户中隐藏了链接sample.jsp。当然,这会隐藏,但如果这个用户知道链接,他最终可以转到该link...How进行配置吗?
发布于 2013-02-12 00:38:02
首先,根据Sudhakar的建议,选择一个吸引您的安全框架,比如Apache Shiro或Spring Security。为了理解不同的安全框架,你可能会喜欢Matt Raible在这里对2011的概述:Spring Security和Apache Shiro,以及其他。
接下来,如果您选择了安全框架,您应该能够非常简单地遵循Quentin的答案。
最基本的方案是基于角色将页面划分为逻辑组(您应该有几个角色):例如,路径为/admin/users/edit (和admin/...)的页面将针对具有管理员角色的人员,/user/order/view (和user/...)将对注册用户可见,等等。如果您希望为特定用户角色呈现页面的某些部分,则需要更高级的设置,例如两个管理员都将访问/user/edit,但只有当当前用户的角色等于管理员时,才会呈现按钮delete。为了更好地保护应用程序,您选择的框架应该提供一种基于用户角色保护业务逻辑方法的方法。如果你选择Shiro,也可能有一些特殊的标签来简化视图的创建,比如<shiro:hasRole>。
但是,对于您的情况,基本的解决方案是使用支持bean方法public boolean isRoleOne() { return role.equals("1"); }的<h:link rendered="#{currentUser.roleOne}"/>。当然,它只会隐藏链接,但用户仍然可以通过其url访问页面。因此,您最终要么编写筛选器的样板代码,要么使用公认的安全框架提出的解决方案。
https://stackoverflow.com/questions/14797958
复制相似问题