Grails-Spring安全性-许多动态角色

Grails-Spring安全性-许多动态角色,spring,grails,spring-security,Spring,Grails,Spring Security,我正在使用Grails和Spring安全性开发一个应用程序 我的愿望是,当用户创建通知其公司名称的帐户时,应用程序会在公司、角色和用户表中创建一个条目,并将该角色和用户与公司条目相关联 创建的角色将类似于管理员,拥有执行任何操作的权限。具有该角色的此用户可以创建指定权限的新角色,但创建的所有角色应仅在公司范围内,因此其他公司的用户不应使用这些角色 我已经看到,Spring安全性有一个名为Requestmap的特性,对于每个URL,应用程序都可以指定有权访问的角色 我不知道这是否是最好的解决方案,

我正在使用Grails和Spring安全性开发一个应用程序

我的愿望是,当用户创建通知其公司名称的帐户时,应用程序会在公司、角色和用户表中创建一个条目,并将该角色和用户与公司条目相关联

创建的角色将类似于管理员,拥有执行任何操作的权限。具有该角色的此用户可以创建指定权限的新角色,但创建的所有角色应仅在公司范围内,因此其他公司的用户不应使用这些角色

我已经看到,Spring安全性有一个名为Requestmap的特性,对于每个URL,应用程序都可以指定有权访问的角色

我不知道这是否是最好的解决方案,因为在我的应用程序中,角色数量的增加至少与用户数量的增加一样多

你们对如何解决这个问题有什么建议吗

谢谢大家。

你应该看看

有了这个插件,你就可以在某些域模型上为某些用户添加权限(比如写或读权限)

查看文档中的示例:

@Transactional
@PreAuthorize("hasPermission(#report, write) or " +
             "hasPermission(#report, admin)")
Report updateReport(Report report, params) {
   report.properties = params
   report.save()
   report
}
通过使用
PreAuthorize
注释,可以检查用户是否对该特定
报表
实体具有写入(或管理)权限。

您应该查看

有了这个插件,你就可以在某些域模型上为某些用户添加权限(比如写或读权限)

查看文档中的示例:

@Transactional
@PreAuthorize("hasPermission(#report, write) or " +
             "hasPermission(#report, admin)")
Report updateReport(Report report, params) {
   report.properties = params
   report.save()
   report
}
通过使用
PreAuthorize
注释,可以检查用户是否对该特定
报表
实体具有写入(或管理)权限