【发布时间】:2013-10-08 02:03:07
【问题描述】:
我正在阅读Apache Shiro 并想看看我是否正确地理解了这个心理模型。
来自docs:“
Realm是一个组件,可以访问特定于应用程序的安全数据,例如users、roles和permissions”。 .. “领域通常与数据源(例如关系数据库、LDAP 目录、文件系统或其他类似资源)具有一对一的关联。”
此外,我了解到application 可能包含多个realms 用于身份验证和授权。
很好,但是Realms 与用户的概念有什么关系?
- 是否每个
Realm都应该是用户空间的一个分区?即:User可能只出现在 1 个Realm - 或者,这就是我所期待的,
Realms可用于将身份验证和授权分层叠加,可以在同一个User上工作。但是,在这种情况下,User在哪里管理?我猜它应该在Realm之外的某个地方,但是在哪里?
也许我对此感到困惑,因为我认为User 是一个单一的实体(例如:我只能有一个)。而是应该将User 视为UserAccount。即:每个Realm 管理它自己的Useraccounts(在称为User 的文档中),但User 可能有多个UserAcounts。那是对的吗?
假设以上是正确的:
- 是否有任何逻辑可以让我查询给定用户的所有
UserAccounts?即:基本上将所有Useraccounts合并在一起以获得User的完整视图? - 在这种情况下
User的概念(1 个User可能有多个UserAccounts)甚至存在于Shiro 中吗?
【问题讨论】: