首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >春季角色与ACL的比较

春季角色与ACL的比较
EN

Stack Overflow用户
提问于 2014-08-13 10:33:47
回答 1查看 919关注 0票数 0

问题是我应该在对象作用域中使用角色还是只使用ACLs。

这里是用例,假设我希望用户对companyA拥有CRUD权限,但只对companyB拥有读取权限。

现在我可以用两种方式来实现这一点。

方法1)

创建两个角色

1) ROLE_ADMIN :担任此角色的用户将拥有对任何公司的所有CRUD权限。

2) ROLE_SUPPORT :此角色中的用户只具有e级的读取权限

现在我可以说,

UserA-> ROLE_ADMIN --关于CompanyA

ROLE_SUPPPORT ->在CompanyB上.

注意:这里我不对对象设置任何权限。

方法2)只有一个角色管理员,我可以说

User->具有CRUD权限--对CompanyA

RRead ->具有CompanyB权限

我不知道哪一种方法是首选的,以及为什么。在方法#2中,我看不到角色中的值,因为不管怎么说,对对象都定义了权限。我所看到的唯一有意义的情况就是创造。如果允许用户创建对象,用户就不会预先知道,因为那时对象不存在。在方法2中,我不需要任何多个角色。但听起来不对。

那么,当我可以使用方法1做同样的事情时,为什么要使用方法2呢?

希望听到你的消息。

谢谢保罗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-14 14:24:54

角色和ACL服务于不同的目的。

角色限制在某些资源上,例如,您可以说UserA可以访问公司或不能访问公司。

使用ACL,您可以说UserA可以访问CompanyA,但不能访问公司内部的CompanyB。

因此,角色不如ACL细粒度,但它们可以协同工作。

回到您的情况,您将需要ACL来限制UserA对CompanyA进行读取和为CompanyB进行写入,但是需要角色说明UserA可以访问类型公司的资源。这还将解决关于创建的另一个问题:因为UserA可以访问公司,所以他可以创建一个新的CompanyC,并且根据定义,ACL写访问将与CompanyC相关联(因为他是创建者)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25293615

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文