云概念下的权限系统

来源:互联网 发布:淘宝卖大米要什么手续 编辑:程序博客网 时间:2024/05/29 19:01

    最近再做权限管理系统,采用shiro做为权限框架,配合cas作为单点登录服务。可以灵活的实现对用户权限细粒度的控制。这篇博客抛开使用的技术实现,理一理整个设计思路。

基本介绍

    我们的项目引入云的概念,我自己也不是理解的很透彻,我试试看能不能说的明白。整个系统有子系统A、B、C 以及权限系统。每个注册机构拥有自己的数据库,和一套服务。云平台需要管理每个注册机构可使用的资源,也就是说要控制每个机构的权限。权限系统则需要在云平台授权的资源的基础上,管理用户的权限。如下图:

    如图所示,权限系统以AOP的方式切入各个子系统,这里是通过Shiro实现的。也就是说,如果平台下增加了资源,系统的也好,模块也好。只要将对应的资源信息导入到平台下的数据库中,然后就可以通过授权来控制是否被使用。

登录解决方案

    这里的问题是,当用户登录时我们无法确定用户是属于哪一个机构,存储在哪一个数据库里。所以,我们将机构里的所有用户,包括云平台自己的用户抽出和登录相关的字段存储在云平台的数据库的一个表中。然后,统一从云平台的入口配合Cas进行登录验证。登录时根据在该表中取得的机构的ID来确定对应的数据库,进而确定用户。各子系统也是如此。如下图:



资源的同步

    我们还遇到的问题是云平台和权限系统的资源同步问题。即当机构所对应的角色发生改变时,或者当机构所拥有的资源被禁用或者删除时。如何将这种改变同步到各个机构的权限系统的数据库中。
    分析:首先禁用或者删除是不应该发生的。也就是说注册机构拥有的权限是不允许被禁用或者删除的。所以我们只考虑当机构对应的角色增加了资源时,我们才考虑同步的问题。这里的同步的决定权要交给机构自己来决定。如下图:



    总结:实际上,云平台就是一个大的权限系统,各个注册机构是它的用户。而权限系统是机构用户控制自己已有资源的系统,它的用户就是普通意义上的用户。本篇先介绍到这里!

0 0