在我的grails应用程序中,我安装了spring security acl并且工作正常。我有一个域类客户和三个角色,即管理员,销售人员,其他人。 如何为同一域实例上的不同用户授予权限,即对ROLE_ADMIN(创建,读取,删除和写入),ROLE_SALES(创建,读取)和ROLE_OTHERS(创建,读取,写入)。
示例:x是admin角色创建的客户实例,具有写入,删除,读取权限。 对于相同的x实例,如何授予权限读取,写销售角色以及创建,读取,写入其他角色的权限
答案 0 :(得分:2)
您可以在班级或方法级别放置@Secured
授权注释。这样,您可以将控制器方法锁定到某些角色。例如,如果您要控制访问权限的Thing域类,则可以通过以下方式注释其控制器:
class ThingController {
@Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
create() {
// creation logic
}
@Secured(['ROLE_ADMIN', 'ROLE_SALES', 'ROLE_OTHERS'])
read() {
// read logic
}
@Secured('ROLE_ADMIN')
delete() {
// delete logic
}
@Secured(['ROLE_ADMIN', 'ROLE_OTHERS'])
write() {
// write logic
}
}
Here是Grails Spring Security文章的一个很好的介绍(请参阅“添加访问控制”和“注释”)。 And here是有关此主题的官方Grails Spring Security文档。