Spring Security - 为什么要为用户和角色分别创建类?

时间:2014-08-18 09:07:33

标签: java mysql spring spring-mvc spring-security

我正在尝试为我的应用程序实现spring security,因此我一直在网上阅读很多文章。我注意到的一件事是,有很多例子将用户角色类与用户类分开。为什么会这样,这是一般的最佳实践规则吗?或者是否有可能将角色字段添加到用户类并使用枚举数据类型,因此我们只有一个在数据库中用两个表进行身份验证而不是一个?有人可以帮我理解这个......

2 个答案:

答案 0 :(得分:2)

用户可以拥有多个角色。支持团队的成员可以拥有规则" user"和"支持"因此,他们可以像普通用户验证问题报告一样使用系统,例如。

另一个例子是你经常需要细粒度的角色。而不是" admin"和"用户",您可以为来宾和可能只是在系统的某个部分工作的人员设置不同的用户角色。

想想eBay:你有顾客和卖家。卖家可以做的不仅仅是买家。但卖家如果需要也需要买东西。然后一些卖家可能想要将他们的人分成#34;可以添加优惠"和"可以打折。"虽然所有员工都有前者,但只有少数人会拥有后者。

答案 1 :(得分:1)

经典设计是用户组角色。用户可以属于多个组; a可以授予一个或多个组的角色;可以有很多团体。这是一种三元关系。

我不会考虑通过单个表来减少模式的大小,而不是它对一个好的抽象的暴力行为。