【发布时间】:2014-10-11 03:40:37
【问题描述】:
我正在尝试为我的应用程序实现 spring 安全性,因此我一直在网上阅读很多文章。我注意到的一件事是,有很多示例将用户角色类与用户类分开。为什么会这样,这是一般的最佳实践规则吗?或者是否有可能将角色字段添加到用户类并使用枚举数据类型,所以我们只有一个表而不是在数据库中放置两个表进行身份验证?谁能帮我理解这个...
【问题讨论】:
标签: java mysql spring spring-mvc spring-security
我正在尝试为我的应用程序实现 spring 安全性,因此我一直在网上阅读很多文章。我注意到的一件事是,有很多示例将用户角色类与用户类分开。为什么会这样,这是一般的最佳实践规则吗?或者是否有可能将角色字段添加到用户类并使用枚举数据类型,所以我们只有一个表而不是在数据库中放置两个表进行身份验证?谁能帮我理解这个...
【问题讨论】:
标签: java mysql spring spring-mvc spring-security
经典设计是用户-组-角色。一个用户可以属于多个组;一个角色可以授予一个或多个组;可以有很多组。这是一个三元关系。
我不会考虑通过一个表来减少架构的大小,值得它为一个好的抽象所做的暴力。
【讨论】:
一个用户可以拥有多个角色。例如,支持团队的成员可以拥有“用户”和“支持”规则,因此他们可以像普通用户一样使用系统来验证问题报告。
另一个例子是您经常需要细粒度的角色。除了“管理员”和“用户”,您可以为来宾和可能只在系统的某个部分工作的人设置不同的用户角色。
想想 eBay:你有客户和卖家。卖家可以做的不仅仅是买家。但卖家也需要买东西。那么有些卖家可能想把他们的人分成“可以加优惠”和“可以打折”。虽然所有员工都会拥有前者,但只有少数员工拥有后者。
【讨论】: