当前位置: 首页 > 知识库问答 >
问题:

grails字段级安全性-spring acl

孙承弼
2023-03-14

我正在从事一个项目,我们需要向用户提供现场级访问。

示例:

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

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

用户被允许根据访问来编辑/读取字段。

我们已经想到了使用Spring acl的实现,但它提供了实例级安全性。

有人能告诉我一个优雅的方法来实现它吗?

提前谢谢。

共有2个答案

程鸿煊
2023-03-14

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

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

扶冠宇
2023-03-14

看看fields插件。

它允许您控制各个字段的渲染方式。

您可以在每个字段的\u字段中实施安全检查。gspfragment,或者您可以覆盖插件的taglib的f:all方法,并在那里添加安全检查(如果您愿意)。

 类似资料:
  • 问题内容: 我对安全性有一个不寻常的要求,我正在寻找有关最佳做法或至少是非脆弱方法的建议。 场景:Intranet系统。有关许多相关实体的数据将被视为私有数据。这被称为系统的未发布部分。只有某些用户可以访问此数据。在某些阶段,用户可以从该数据中进行选择,标记一些记录并将其发布到“已发布”侧。已发布到发布端的数据将从未发布端删除。然后,大部分系统用户都可以处理发布端的记录。 我知道这听起来像是父记录

  • 例如,如果我从以下更改: 到 将foo从1更改为2安全吗?文档说不要:<代码>这些数字用于标识消息二进制格式中的字段,并且在使用消息类型时不应更改 ,但我想知道为什么。

  • 问题内容: 我试图简单地测试JLS保证的最终字段的初始化安全性。这是我写的论文。但是,根据我当前的代码,我无法使其失败。有人可以告诉我我做错了什么吗,或者这只是我必须一遍又一遍然后看到失败的时机而已? 这是我的代码: 我的线程正在这样调用它: 我已经多次运行过这种情况。我当前的循环产生了10,000个线程,但是我已经完成了1000、100000,甚至一百万个线程。仍然没有失败。我总是看到3和4这两

  • 1.远程执行命令 1.1 危险命令检测. gossh将危险的命令放到黑名单中,一旦远程执行危险命令,会自动退出,通过指定-f参数强制执行。危险命令目前收录如下: "mount", "umount", "rm", "mkfs", "mkfs.ext3", "make.ext2", "make.ext4", "make2fs", "shutdown", "reboot", "init", "dd"

  • 当我使用security.basic.enabled=false在具有以下依赖项的Spring Boot项目上禁用安全性时: 为了修复此异常,我必须添加属性-management.security.enabled=false。我的理解是,当执行器在类路径中时,应该将security.basic.enabled=false和management.security.enabled=false设置为禁用

  • 问题内容: 为了线程安全,是否应该是故意不可变的Java类’final’的所有字段(包括超字段),还是没有修饰符方法就足够了? 假设我有一个带有非最终字段的POJO,其中所有字段都是某种不可变类的类型。这个POJO有getters- setters和一个设置一些初始值的构造函数。如果我通过敲除修饰符方法来扩展此POJO,从而使其不可变,那么扩展类是否是线程安全的? 问题答案: 为了以线程安全的方式