【发布时间】:2010-12-15 12:21:47
【问题描述】:
背景: 我正在开发的 grails 应用程序具有几个级别的细粒度安全性。首先,粒度最小的是控制器级别。您可以查看特定页面,也可以不查看(我使用的是 Acegi spring 安全插件)。第二级安全性是通过 AOP 方法在服务层中实现的。您可以根据您与该对象的关系,使用传递的属性访问某个服务方法。第三层再次位于服务层,并再次通过 AOP 提供便利,AOP 向服务方法提供建议,然后限制或更改返回的内容。
问题
我的问题涉及的最后一个级别是显示级别。一些用户无法获得指向某些页面的链接或无法查看其他信息。实现这一点的最佳方法是什么?目前我使用安全标签库并直接在我的 gsp 上使用 ifAnyGranted 或 ifAllGranted 等。将来可能需要拥有更复杂的特权。是否应该将此安全性拉回控制器,然后传递给模型,以便您可以执行<g:if test="${hasSomeViewRight}"></g:if> 之类的操作?
我觉得这两种方式都不是很简洁。有更好的模式吗?
【问题讨论】:
标签: java security web-applications grails spring-security