0

我了解,要使用 Spring 安全 ACL,我们在数据库中创建 4 个强制表 (acl_*)。当创建一个新对象时,在表“acl_object_identity”中创建条目,并且安全授权规则在表“acl_entry”中,例如哪个用户/角色可以读取/写入对象。当任何用户尝试获取或更新对象时,这些规则稍后会被验证。
在网上的大部分例子中,表中的条目都是通过SQL完成的,在生产中不会总是这样 问题是关于插入?我认为在对象创建点(控制器中的这种 POST 方法)需要两件事:

  1. 检查用户是否有权创建对象,这可以使用 Spring security 而不是 spring security acl 来完成
  2. 在 acl_object_identity 和 acl_entry 表中插入条目。这是额外的代码(在 spring 安全 acl 代码之外),并且在(理想情况下)与在数据库中插入新对象相同的事务中完成

完成上述两个操作后,在验证读取/更新(对先前创建的对象的 GET、PUT、DELETE 等)请求时使用 spring security acl。

我的理解正确吗?

4

1 回答 1

0

我验证并且理解是正确的。

  1. 检查用户是否在插入 (POST) 操作中获得授权。创建 ACL 条目
  2. 检查 ACL 条目的读/写(GET、PUT、DELETE)操作
于 2022-02-28T00:14:34.700 回答