Grails& Spring Security - 基于其他属性

时间:2016-02-09 10:16:01

标签: grails spring-security

我正在尝试使用Spring Security 3插件配置我的Grails 3应用程序,以防止没有特定权限的用户访问一组特定功能。 我使用了默认设置,包含UserRoleUserRole域类(后者包含在下面),目的是广泛使用@Secure或{{1注释。

稍后,出现了一个新要求:另一个域类是@PreAuthorize(基本上您可以被授予对一个或多个项目的访问权限),并且用户可能具有项目特定的权限。

示例:

  • A B C Project
  • User1 A C 角色
  • for ProjectAlpha ,我想“覆盖” User1 的“默认”角色,以便他有 A B 特权。

因此 Project1 ProjectAlpha 的“真实”权限必须在具有Roles引用的UserRole条目中找到。< / p>

首先,我要为Project类添加新的Project project属性,并在拦截器中预先计算UserRole。但后来我无法弄清楚这项任务的最佳方法(甚至是可行性)。

欢迎任何建议,谢谢!

project

1 个答案:

答案 0 :(得分:2)

听起来你需要the ACL plugin。它将允许您为不同的用户配置各个域类实例的权限。角色应该更粗粒度,但是如果你想配置read / edit / delete / admin / etc.权限,ACL更适合。