【发布时间】:2015-01-14 14:47:29
【问题描述】:
我们已经为隐式和显式角色建立了基于角色的身份验证和角色层次结构的 spring 安全项目。我们还有一个额外的要求,即根据域对象的状态提供不同的授权。例如:
订购域对象:
- 当订单处于初始状态时
- 字段 1、2、3 可由 RoleA 编辑,且可由 RoleB 查看
- 字段 4、5、6 可由角色 A 和角色 B 编辑
- 当订单处于 QA 状态时
- 字段 1、2、3 可由 RoleA 查看,且可由 RoleB 编辑
- 角色 A 和角色 B 可以查看字段 4、5、6
- 当订单处于已完成状态时
- 字段 1、2、3 可由 RoleA 查看,且可由 RoleB 查看
- RoleA 和 RoleB 可以查看字段 4、5、6
我们使用 ant 匹配器的标准 Spring Security URL 级别安全性不足以处理授权要求,因为相同的服务 URL 用于查看 (GET) 和保存 (PUT) 订单域对象(如果它们处于任何状态) .我们还希望使流程可配置,以针对每个权限集中的哪些字段。
Spring 域对象安全性看起来适用于状态固定或恒定的域对象——由特定用户创建的博客条目等...
这个要求可以由 Spring Domain Object Security 处理,还是应该通过自定义代码/配置更好地处理?
【问题讨论】:
标签: java spring-security acl