有没有办法限制对象所有者对 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 Plugin和 spring-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/