我正在使用Grails和Spring Security开发一个应用程序。
我的愿望是,当用户创建他的帐户通知他的公司名称时,该应用程序会在公司,角色和用户表中创建一个条目,并将该角色和用户与公司条目相关联。
创建的角色将像管理员一样,拥有执行所有操作的权限。具有该角色的此用户可以创建指定权限的新角色,但创建的所有角色应仅在公司范围内,因此其他公司的用户不应使用这些角色。
我已经看到Spring Security有一个名为Requestmap的功能,对于每个URL,应用程序可以指定将具有访问权限的角色。
我不知道这是否是最佳解决方案,因为在我的应用程序中,角色数量将增加至少与用户数量一样多。
你们对如何解决这个问题有一些建议吗?
谢谢大家。
答案 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
实体具有写入(或管理员)权限。