一种基于ssh网站实现rbac访问权限控制的方法

文档序号:7824319阅读:376来源:国知局
一种基于ssh网站实现rbac访问权限控制的方法
【专利摘要】本发明公开了一种基于SSH网站实现RBAC访问权限控制的方法,包括以下步骤:用户对页面进行访问请求,判断Session中的用户名变量是否为空,若为空,则跳转到登录页面让用户登录,否则将用户信息保存在所述Session中;用户访问数据库,并将登录成功的用户信息保存在所述session中;ORM模块访问所述数据库,从所述数据库得到访问页面相应的权限信息;触发AOP拦截器,所述APO拦截器从所述Session中得到用户的权限信息;所述AOP拦截器判断用户的权限信息,若包含访问页面相应的权限信息,则用户访问成功,否则访问失败。本发明的有益效果为:逻辑清晰、各个逻辑之间的耦合度低、程序的可重用性高、开发效率高。
【专利说明】一种基于SSH网站实现RBAC访问权限控制的方法

【技术领域】
[0001]本发明涉及访问控制及其网站开发【技术领域】,具体而言,涉及一种基于SSH网站实现RBAC访问权限控制的方法。

【背景技术】
[0002]在现代信息系统中,安全管理一直是重要部分。而访问控制技术则是安全信息系统的重要环节,它的主要任务是保证资源不被非法使用和访问。基于角色的访问控制(Role-Based Access Control)作为传统访问控制的代替受到了广泛的关注。RBAC包含三个实体:用户、角色和权限。用户是对数据对象进行操作的主体,可以是人、机器人和计算机等。权限是对某一数据对象可操作的权利。角色则是用户和权限的中间桥梁。RBAC通过引进角色的概念实现了用户和权限的逻辑分离,支撑了技术人员与业务人员职责的分离,用户通过获得角色得到权限来对客体进行操作,从而实现权限管理与控制。
[0003]但是传统的RBAC在信息系统建立时角色种类已经确定,角色和权限之间的关联关系也已经绑定完成,系统可扩展性差,并且逻辑之间的耦合度高,程序的可重用性不高、开发效率低。


【发明内容】

[0004]为解决上述问题,本发明的目的在于提供一种逻辑清晰、耦合度低,程序的可重用性高、开发效率高的一种基于SSH网站实现RBAC访问权限控制的方法。
[0005]本发明提供了一种基于SSH网站实现RBAC访问权限控制的方法,其特征在于,包括以下步骤:
[0006]步骤1,用户对页面进行访问请求,判断Sess1n中的用户名变量是否为空,若为空,则跳转到登录页面让用户登录,否则将用户信息保存在所述Sess1n中;
[0007]步骤2,用户访问数据库,并将登录成功的用户信息保存在所述sess1n中;
[0008]步骤3,ORM模块访问所述数据库,从所述数据库得到访问页面相应的权限信息;
[0009]步骤4,触发AOP拦截器,所述APO拦截器从所述Sess1n中得到用户的权限信息;
[0010]步骤5,所述AOP拦截器判断用户的权限信息,若包含步骤3得到的权限信息,则用户访问成功,否则访问失败。
[0011]其中,所述数据库包括:
[0012]用户表,包括用户编码及用户名,用于储存用户信息;
[0013]角色表,包括角色编码及角色名,用于储存角色信息;
[0014]权限表,包括权限编码、权限名和URL地址,用于储存具体的权限信息;
[0015]用户角色表,包括用户编码和角色编码,实现用户和角色的多对多映射;
[0016]角色权限表:包括角色编码和权限编码,实现角色和权限的多对多映射;
[0017]所述角色表通过所述用户角色表与所述用户表进行多对多的关联;
[0018]所述角色表通过所述角色权限表与所述权限表进行多对多关联。
[0019]作为本发明进一步的改进,所述角色表中加入父类角色编码用以适应角色的分级。
[0020]作为本发明进一步的改进,所述用户信息、所述角色信息和所述权限信息均以变量名的形式储存在sess1n中。
[0021]本发明的有益效果为:
[0022]1、通过数据库的设计,将用户和权限的逻辑很好的分离开,各个逻辑之间的耦合度降低;
[0023]2、通过ORM模块对数据库访问和AOP拦截器对访问用户权限的检查,使得程序的可重用性高、开发效率高。

【专利附图】

【附图说明】
[0024]图1为本发明实施例所述的一种数据库的结构图。
[0025]图2为本发明实施例所述的一种基于SSH网站实现RBAC访问权限控制的方法的流程图;

【具体实施方式】
[0026]下面通过具体的实施例并结合附图对本发明做进一步的详细描述。
[0027]如图1所示,本发明的数据库包括:
[0028]用户表,包括用户编码userid及用户名username,用于储存用户信息;
[0029]角色表,包括角色编码roleid及角色名rolename,用于储存角色信息;
[0030]权限表,包括权限编码rightid、权限名rightname和URL地址,用于储存具体的权限信息;
[0031]用户角色表,包括用户编码userid和角色编码roleid,实现用户和角色的多对多映射;
[0032]角色权限表:包括角色编码roleid和权限编码rightid,实现角色和权限的多对多映射;
[0033]所述角色表通过所述用户角色表与所述用户表进行多对多的关联;
[0034]所述角色表通过所述角色权限表与所述权限表进行多对多关联。
[0035]如图2所示,本发明实施例所述的一种基于SSH网站实现RBAC访问权限控制的方法,包括以下步骤:
[0036]步骤1,用户对页面进行访问请求,判断Sess1n中的username变量是否为空,若为空,则跳转到登录页面让用户登录,否则将用户信息保存在所述Sess1n中;
[0037]步骤2,用户访问数据库,并将登录成功的用户信息保存在所述sess1n中;
[0038]步骤3,ORM模块访问所述数据库,从所述数据库得到访问页面相应的权限信息;
[0039]步骤4,触发AOP拦截器,所述APO拦截器从所述Sess1n中得到用户的权限信息;
[0040]步骤5,所述AOP拦截器判断用户的权限信息,若包含步骤3得到的权限信息,则用户访问成功,否则访问失败。
[0041]由于用户访问的时候是通过页面来访问,输入的时候就是一个URL地址,而用户拥有的权限是通过编码来标识的,这就需要在URL地址与权限编码之间建立一个关联。由于URL地址与权限的关联保存在数据库中,这就需要通过ORM模块来访问数据库,以实现查询URL地址所对应的权限。
[0042]用户登录时,会把用户所拥有的用户编码userid、用户名username、角色编码roleid、角色名rolename、权限编码rightid、权限名rightname和URL地址以变量名的形式存储在Sess1n中,已备需要时调用。当用户访问某个页面时,就触发AOP拦截器,AOP拦截器从Sess1n中获得用户权限信息,与ORM模块得到的权限信息进行比较,以判断是否有访问此页面的权限,实现访问控制。
[0043]作为本发明进一步的改进,所述角色表中加入父类角色编码用以适应角色的分级。
[0044]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种基于SSH网站实现RBAC访问权限控制的方法,其特征在于,包括以下步骤: 步骤1,用户对页面进行访问请求,判断Sess1n中的用户名变量是否为空,若为空,则跳转到登录页面让用户登录,否则将用户信息保存在所述Sess1n中; 步骤2,用户访问数据库,并将登录成功的用户信息保存在所述sess1n中; 步骤3,ORM模块访问所述数据库,从所述数据库得到访问页面相应的权限信息; 步骤4,触发AOP拦截器,所述APO拦截器从所述Sess1n中得到用户的权限信息;步骤5,所述AOP拦截器判断用户的权限信息,若包含步骤3得到的权限信息,则用户访问成功,否则访问失败。
2.根据权利要求1所述的一种基于SSH网站实现RBAC访问权限控制的方法,其特征在于,所述数据库包括: 用户表,包括用户编码及用户名,用于储存用户信息; 角色表,包括角色编码及角色名,用于储存角色信息; 权限表,包括权限编码、权限名和URL地址,用于储存具体的权限信息; 用户角色表,包括用户编码和角色编码,实现用户和角色的多对多映射; 角色权限表:包括角色编码和权限编码,实现角色和权限的多对多映射; 所述角色表通过所述用户角色表与所述用户表进行多对多的关联; 所述角色表通过所述角色权限表与所述权限表进行多对多关联。
3.根据权利要求2所述的一种基于SSH网站实现RBAC访问权限控制的方法,其特征在于,所述角色表中加入父类角色编码用以适应角色的分级。
4.根据权利要求2所述的一种基于SSH网站实现RBAC访问权限控制的方法,其特征在于,所述用户信息、所述角色信息和所述权限信息均以变量名的形式储存在sess1n中。
【文档编号】H04L29/06GK104486357SQ201410843787
【公开日】2015年4月1日 申请日期:2014年12月30日 优先权日:2014年12月30日
【发明者】周世义, 刘若鸿, 武扬, 刘伟, 段明明 申请人:北京经开投资开发股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1