【发布时间】:2013-07-11 00:25:43
【问题描述】:
我正在使用 Spring 安全性开发 Spring MVC webapp。
根据登录的用户和当前访问的实体,我必须允许或拒绝用户查看或修改它。如果用户创建了实体,他就是所有者,他可以处理实体。我可以验证它,因为 entity.user == user。
我也有这样的情况,用户只能通过获取实体的父级或 n-parent 来进行比较。例如 entity.nestedEntity.user == user
我已经看到 spring security 具有 ACL 支持(域对象安全),但我认为我无法处理“父场景”。而且我不是从一个空的数据库开始的。此外,我认为我需要为每个对象构建 acl。所以我认为这不是正确的方法。
现在我在控制器层进行检查,获取当前用户并将其与存储在请求对象中的用户进行比较。如果它们不相同,我会抛出 AccessDeniedException。
为了使事情尽可能简单,我可以采取哪些替代方法?
谢谢马尔科
【问题讨论】:
标签: spring spring-mvc spring-security