当系统里每个角色都有了定义清晰的访问列表后,一个用户的登录行为实际上就是动态迁移角色的行为。...比如说,登录前小明的角色是 [所有用户, 匿名用户],登陆后他的角色转化为 [所有用户, 已登录用户],当他创建群组A后,并进入群组A后,他的角色转化为 [所有用户, 已登录用户, A群成员, A群群主...],当他加入群组B,开始聊天时,他的角色又转化为 [所有用户, 已登录用户, B群成员]。...无论小明访问系统的哪个部分,我们都能找到他对应的角色,进而算出他拥有的权限的集合(所有角色的访问列表的并集)。...一个用户在极端的情况下可能没有附加任何角色,或者请求的操作并未找到对应的访问列表,那么能唯一匹配的访问列表就是「所有用户不能进行任何操作」(all, *, *, DENY),所以不允许他做任何事情,在逻辑上是严密的