问题标签 [spring-security-acl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
95 浏览

java - @PostFilter 不适用于 Spring @Aspect

我正在尝试做这样的事情:

方面工作良好,但最后一种方法executeWithFilter是在没有过滤的情况下完成的。同时,如果我添加@PostFilter(value = "hasPermission(filterObject, 'READ')")到常规服务方法中,过滤会起作用。甚至可以@PostFilter在方面使用吗?

0 投票
0 回答
34 浏览

java - Spring Security ACL 总是将 anonymousUser 设置为 Owner

我正在使用 spring-security-acl 进行授权。

我想注册一个新用户并授予该用户仅修改其自身的权限。我正在执行以下步骤:

  1. 将用户添加到 mySql 数据库中的用户表中。
  2. 设置此用户的权限(将自身修改为 ACL_* 表的权限)

但是当我检查acl_object_identityowner_sid时,对象的始终是anonymousUser.

0 投票
1 回答
50 浏览

spring - Spring Security ACL 是否应该与 WebSecurityExpressionHandler 一起使用?

我按照本指南使用 ACL 设置安全性,效果很好。之后我还尝试在 WebSecurityConfigurerAdapter 中实现 ACL。所以我设置了一个 bean,它会创建一个 DefaultWebSecurityExpressionHandler:

我会将它应用于我的 WebSecurityConfigurerAdapter 中的 HttpSecurity:

但这只是行不通。这个完全相同的表达式在 @PreAuthorize 标记中起作用,但在这里它不起作用。我调试了一下,发现准确的故障点在Spring提供的JdbcAclServiceImpl类中,方法如下:

即使提供的参数与我使用 @PreAuthorize 标记时相同,result.containsKey(oid)但即使我可以在调试器中看到它并且我看到oid应该匹配它,也只是无法找到 acl。

所以我的问题是:Spring Security ACL 是否应该工作以保护路由,还是仅用于保护方法?

顺便说一句,我正在使用 Spring Boot 2.5.5

0 投票
1 回答
12 浏览

spring - 插入 Spring Security ACL

我了解,要使用 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。

我的理解正确吗?