我正在尝试使用Spring Security 3插件配置我的Grails 3应用程序,以防止没有特定权限的用户访问一组特定功能。
我使用了默认设置,包含User
,Role
和UserRole
域类(后者包含在下面),目的是广泛使用@Secure
或{{1注释。
稍后,出现了一个新要求:另一个域类是@PreAuthorize
(基本上您可以被授予对一个或多个项目的访问权限),并且用户可能具有项目特定的权限。
示例:
Project
因此 Project1 对 ProjectAlpha 的“真实”权限必须在具有Roles
引用的UserRole
条目中找到。< / p>
首先,我要为Project
类添加新的Project project
属性,并在拦截器中预先计算UserRole
。但后来我无法弄清楚这项任务的最佳方法(甚至是可行性)。
欢迎任何建议,谢谢!
project
答案 0 :(得分:2)
听起来你需要the ACL plugin。它将允许您为不同的用户配置各个域类实例的权限。角色应该更粗粒度,但是如果你想配置read / edit / delete / admin / etc.权限,ACL更适合。