Grails - Spring Security - 许多动态角色

时间:2017-01-04 11:07:17

标签: spring grails spring-security

我正在使用Grails和Spring Security开发一个应用程序。

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

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

我已经看到Spring Security有一个名为Requestmap的功能,对于每个URL,应用程序可以指定将具有访问权限的角色。

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

你们对如何解决这个问题有一些建议吗?

谢谢大家。

1 个答案:

答案 0 :(得分:0)

您应该查看Spring Security ACL plugin

使用此插件,您可以向某些域模型上的某些用户添加权限(如写入或读取权限)。

查看文档中的示例:

@Transactional
@PreAuthorize("hasPermission(#report, write) or " +
             "hasPermission(#report, admin)")
Report updateReport(Report report, params) {
   report.properties = params
   report.save()
   report
}

通过使用PreAuthorize注释,检查用户是否对此特定Report实体具有写入(或管理员)权限。