【问题标题】:View Level Security Pattern查看级别安全模式
【发布时间】: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


    【解决方案1】:

    是的,它应该被拉回控制器。

    也就是说,在 asp.net mvc 中,这通常是通过拥有一个视图模型来完成的,因此您的模型不会被与特定视图相关的东西填充。

    附言。我认为“hasSomeViewRight”类似于“canDeleteProducts”、canUpdateProducts 等。

    【讨论】:

    • 谢谢,我希望得到更多的讨论。
    猜你喜欢
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 2015-06-30
    • 2013-11-02
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多