大型BS结构系统中对资源的控制方法技术方案

技术编号:7786671 阅读:226 留言:0更新日期:2012-09-21 07:54
本发明专利技术提供一种大型BS结构系统中对资源的控制方法,主要在于如何判断是否有权限访问URL:如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步;根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步;判断第二步得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。该方法能够将权限控制的代码进行集中,同时降低代码复杂度,有效杜绝资源漏控现象。

【技术实现步骤摘要】

本专利技术涉及一种资源控制方法,具体的说,涉及了一种大型BS结构系统中对资源的控制方法
技术介绍
在任何一个大型BS结构系统开发过程中,都要涉及对用户的权限管理,目前通常使用的方法有两种,一是直接用户一权限,另一种是用户一角色一权限,但无论哪种方法都离不开对权限的定义,即对系统中的各种资源进行分解和定义。目前通常采用的方法是将资源定义为一个字符串标识,通过该字符串能够唯一确定一种操作权限,这个权限可能是某个按钮是否可见,亦或对某些重要数据能否修改,软件开发人员在软件开发时就对权限进行定义,在编码过程中调用权限验证的代码进行判断。这类资源控制方法有着较大的缺陷,具体分析如下1、权限控制过于分散在系统的开发过程中,开发人员不仅要关于业务及流程,同时也要对各种权限进行定义和控制,权限控制代码分散在系统的各个模块中,不能进行集中管理,导致权限控制过于随意化,不易做到统一管理,当模块间出现相互调用时将会出现权限不易界定的现象。2、增加了代码复杂度因为权限部分只负责根据用户所拥有的权限对当前权限进行判定,所以软件开发人员就要编写大量的逻辑判断代码,导致系统中存在大量的判断和分支结构,增加了代码的逻辑复杂度,同时也加大了系统bug出现的概率。3、容易发生资源漏控在系统应用的过程中,通常会分为用户界面(UI)和后台数据操作两部分,为了增强用户的体验,就需要将权限的控制在用户界面(UI)和后台数据操作进行双重控制,增加了开发人员的工作量。更有一些系统,只对用户界面进行了控制,未对后台的数据操作进行控制,这样就不可避免模拟URL访问对系统的资源进行修改,达不到保护数据安全性的目的。4、维护性差在管理信息系统中,系统的功能一般情况下是按照菜单进行划分的,而在定义权限时只是对应的一个个特定字符串,与菜单无任何直接关系,给权限分配人员增加了维护难度。为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
技术实现思路
本专利技术的目的是针对现有技术的不足,从而提供一种大型BS结构系统中对资源的控制方法,该控制方法能够将权限控制的代码进行集中,同时大大降低代码复杂度,有效杜绝资源漏控现象,提高权限维护界面的人性化和维护效率。为了实现上述目的,本专利技术所采用的技术方案是一种大型BS结构系统中对资源的控制方法,在于系统中设置功能菜单,菜单为树型结构,每个菜单对应一些功能的组合,每个菜单可以有I个以上的功能,每项功能有名称和英文码; 系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则在菜单中定义的功能项,在Action中要以英文简称做为方法名;对于同一功能有多于I个页面时,要在 同一个方法内进行逻辑判断和处理;在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它参数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单中查找对应的菜单,然后根据菜单+功能英文码+当前登录用户信息判定该用户是否有权限访问URL,在判断时根据以下顺序 步骤I、如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;步骤2、根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步; 步骤3、根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步; 步骤4、判断步骤2得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。本专利技术相对现有技术具有突出的实质性特点和显著进步,具体的说,该方法有以下优点 I、将权限控制代码集中,减少代码污染采用本方法后,只需在菜单管理中增加部分代码,在权限过滤器中修改权限验证方法,即可达到对整个系统的所有资源进行控制的方法,将原来分散在各处的权限控制代码集中到一起,让程序员可以专注于业务流程的开发。2、最大程度上避免资源漏控本方法对系统的URL进行监控,无论是前台展示还是后台数据保存,都在本方法的控制范围之内,不存在因为程序员漏写了后台验证代码从而导致资源漏控的现象。3、提高系统权限的可维护性本方法中将抽象的功能具体到系统菜单上,给系统维护人员以直观的认知,达到了所见即所得的目的,让系统维护人员脱离了菜单一功能一权限对照的重复劳动,提高了系统维护人员的工作效率。具体实施例方式下面通过具体实施方式,对本专利技术的技术方案做进一步的详细描述。一种大型BS结构系统中对资源的控制方法,在于系统中设置功能菜单,菜单为树型结构,每个菜单对应一些功能的组合,每个菜单可以有I个以上的功能,每项功能有名称和英文码; 系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则在菜单中定义的功能项,在Action中要以英文简称做为方法名;对于同一功能有多于I个页面时,要在同一个方法内进行逻辑判断和处理(如添加包括打开添加页面和保存添加信息两个功能,此时需要根据其它参数对用户请求进行判断并处理);在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它参数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单中查找对应的菜单,然后根据菜单+功能英文码+当前登录用户信息判定该用户是否有权限访问URL,在判断时根据以下顺序 步骤I、如果菜单ID为空,表示该URL不在权限控制范围之内,通过,否则继续下一步;步骤2、根据菜单ID和用户ID取出对应的权限列表,如果列表为空,则表示用户无此权限,转向权限错误页面,否则继续下一步; 步骤3、根据菜单ID取出菜单所有功能列表,如功能英文码不在此列表内,表示此功能不在功能控制之内,只要用户有此菜单的查看权限即可,通过,否则继续下一步; 步骤4、判断步骤2得到的权限列表中是否包含功能英文码代码的功能,如果有则通过,否则转向权限错误页面。技术原理JavaEE开发的B/S结构程序,使用Struts2框架处理用户请求。在BS结构的系统中,任何一个功能均对应一个或多个URL,对URL进行控制就控制了系统的入口,用户不可能绕过这道防线对系统进行越权访问。所以通过本方法对URL按指定规则进行限制,最大程度上限制了用户的权限,使系统的权限控制达到了精细化的目的,而且减少了权限管理对系统其它代码的污染。系统中使用Struts2可使系统URL具有明显的可分析性,能够简单的解析出URL所代表的基础URL和功能英文码。但使用其它技术时,将本方法进行稍加改动即可适用。最后应当说明的是以上实施例仅用以说明本专利技术的技术方案而非对其限制;尽管参照较佳实施例对本专利技术进行了详细的说明,所属领域的普通技术人员应当理解依然可以对本专利技术的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发 明技术方案的精神,其均应涵盖在本专利技术请求保护的技术方案范围当中。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.ー种大型BS结构系统中对资源的控制方法,其特征在于系统中设置功能菜单,菜单为树型结构,每个菜单对应ー些功能的组合,每个菜单可以有I个以上的功能,每项功能有名称和英文码;系统使用Struts2框架处理用户请求,在编写Action类时遵循以下规则在菜单中定义的功能项,在Action中要以英文简称做为方法名;对于同一功能有多于I个页面时,要在同一个方法内进行逻辑判断和处理;在系统中增加权限判断的Filter,对请求URL进行分析并过滤,此时URL由基础URL+功能英文码+其它參数组成,首先将URL进行分解,分解出基础URL和功能英文码,通过基础URL在菜单...

【专利技术属性】
技术研发人员:宋帅杰陈路全
申请(专利权)人:河南辉煌科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1