security - Grails 域对象 - 限制对特定用户的访问

标签 security grails grails-orm

有没有办法限制对象所有者对 Grails 域对象的全面访问?

例如,我可以制作 assert很容易,但我不想到处复制它,或者冒着错过一个地方的风险。

这与 Multi-Tenancy 不完全相同,因为它不仅仅是租户 ID - 它可能是不同域对象的特定业务逻辑。

class MyDomain {
  String name
  String user
}

class MyController {
  def show(Long id) {
    def obj = MyDomain.get(id)
    // *** How do I not do copy-paste this line in each individual controller 
    // that touches MyDomain?? *** 
    assert obj.user == CURRENT_USER

    return obj
  }
}

最佳答案

正如其他答案所暗示的那样,有很多方法可以处理这种情况,但是,我认为一种正确的处理方法是使用 Spring Security Pluginspring-security-acl plugin . ACL 插件将深入到对象级别并帮助您控制

根据doc

"The ACL plugin adds Domain Object Security support to a Grails application that uses Spring Security."



安全核心和 ACL 的结合可以帮助您完成所需的工作。

关于security - Grails 域对象 - 限制对特定用户的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18390820/

相关文章:

grails - Grails 3.1.8 Controller

grails - 在Grails审核日志记录插件的onChange方法中,如何获得对拥有的可审核域对象的引用?

spring - Grails中的垂直响应API

grails - 一个 Grails 域类中的多个多对多关联

grails 在运行 grails generate 命令时抛出异常

java - 如何从 GWT 应用程序注销用户?

php - 不要直接访问超全局 $_GET 数组

java - changeit 在 java net ssl keystore 中到底做了什么?

grails - GORM 批量获取和更新

javascript - 同源策略 : Understanding Deny Read