谈谈SS2中的角色(ROLE_)和权限(AUTH_)

来源:互联网 发布:wifidisplay软件下载 编辑:程序博客网 时间:2024/06/08 08:05

SS2解决的地是登陆和权限问题,在我刚刚接触SS2的时候,对ROLE_开头的和AUTH_开头的验证很是迷糊,看了好多的例子,有的是用角色开头,有的是用权限开头,他们之间有什么区别吗?开了好多的文章,都没有解决。

随着对SS2的接触的增多,渐渐的有点心得,在这里写出来备查。

SS2首先解决的是一个登陆认证的问题,也就是你是不是能进入系统地问题,而解决这个问题就需要一个标志来解决,就是角色,通俗的说,一个房子,你想进入,这个房子的主人(角色=管理员)允许你进入(赋予你角色=用户)

于是你就有了进入的权限,OK,你敲门(进入登陆页面输入用户名密码),门卫(SS2)检查你的身份发现你是被许可的用户(登陆验证通过),于是你就进入了这个房子的客厅(主页/首页),登陆验证过程完成。

你进入房间后,你还想进入其中某个房间,呵呵,很不巧,这个房子的所有房间都还有个门,如果没有这些门上的钥匙,你就只能在客厅呆着了,每个房间一把钥匙(不同的角色),你还需要房主给你某个门上的钥匙才能进入,很好,房主又给你了一把钥匙(再次授权分配给你一个角色),于是你进入了其中某个房间。

很好,这时你有两把钥匙了,一把是大门的,一般是房间的,如果你恰巧是管理员,而且你的房子不欢迎别人来住,进了大门,所有地盘都是你说了算,那么你完全只需要一把大门的钥匙就行了,一点问题都没有。呵呵,如果是这样SS2就完全没有存在的必要了。

很不幸的是,现在这种完全与世隔绝的独立系统很好见了,很多人的房子不可避免的要有其他人来住,一个人一个房间,一个房间一把钥匙,如果原先的那一把钥匙要复制好多把一人一把好进大门,进了大门然后再用各自的钥匙进自己的房间。

这种情况下,进大门的这把钥匙就相当于角色,用ROLE_开头,它具有共有属性,也就是很多人都可以拥有的属性,属于概念性,房间钥匙则相当于权限,用AUTH_开头,它具有具体的对象操作的权限许可的特征。

这两中属性是可以在一定条件下转化或者统一的。但是为了更加细致的区分从而把他们又认为的区分了一下。

当然你也可以给每个人一把万能钥匙(管理员的角色),这样就会少很多的不同钥匙(角色减少),但是这样会增加安全隐患。

简单来说,角色定义的是入口的许可,权限定义的是末端的许可。

原创粉丝点击