2012-11-04 217 views
2

在弹簧安全文档中,将创建五个表。弹簧安全表

1.users 2.authorities(地图用户当局) 3.groups 4.groups_authorities(图组当局) 5.group_members(地图用户组)

为什么我们需要将用户和权限映射到组?如果我们将authroities或用户映射到组,我们不能推导出其他关系?

回答

1

感谢这种方法,每个用户都可以拥有一些额外的权限 - 权限不在他/她的任何组中。

例如:

  • user1是群体adminsplain_users
  • admins组有权ROLE_ADMIN
  • plain_users组有权ROLE_USER
  • user1有一些额外的权力ROLE_SUPER_USER

成功通过身份验证后,他/她的List<GrantedAuthority>包含ROLE_ADMIN,ROLE_USER和...表示额外ROLE_SUPER_USER权限。

+0

感谢您的详细回复。 – lives

+0

通过定义三个组可以实现同样的目标 1.admins与** ROLE_ADMIN ** 2.plain_users与** ROLE_USER ** 3.super_users与** ROLE_SUPER_USER **。 _user1_可以作为成员添加到所有这三个组中。 – lives

+0

你说得对。因此,Spring Security足够灵活,可以接受许多不同的领域模型。 –