grails field level security - spring acl

时间:2014-03-13 13:34:40

标签: grails spring-security acl

我正在开展一个项目,我们需要为用户提供字段级访问权。

示例:

假设有一个名为employee的实体,其中包含多个字段

应用程序应允许在实体的字段级别进行安全访问。

根据访问权限,用户可以编辑/阅读字段。

我们已经考虑过使用spring acl的实现,但它提供了实例级安全性。

有人可以让我们知道一种优雅的方式来实现它吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

看看fields plugin

它允许您控制各个字段的呈现方式。

您可以在每个字段的_field.gsp片段中实施安全检查,或者您可以覆盖插件的taglib的f:all方法,并根据需要添加安全检查。

答案 1 :(得分:0)

您可以使用该插件,但您需要做一些额外的工作。 Spring Security中的ACL支持基本上允许您说“将对象实例y(类型为”foo“)的权限x赋予对象p的id为z”。有一个示例权限类,其中包含标准实例,如读取,写入,管理等,但底层基础结构仅适用于数字1,2,4,8等,因此您可以轻松定义自己的权限类型 - 它们'实际上只是人类可读的名字与数字的映射。您通常会授予域对象实例的权限,但是在域下,域类的名称只是字符串,因此您可以在那里存储任何类型名称。并且id可以是任何值,例如数字或字符串。

您将无法在服务方法上使用@PreAuthorize和@PostFilter注释,但您仍然可以查询ACL bean,以查看是否允许当前经过身份验证的用户执行某个字段或任何内容一些行动。