背景技术
Web应用程序是一种基于浏览器/服务器(B/S,Browser/Server)结构的应用程序。图1是现有技术中B/S结构的应用程序的处理流程示意图。如图1所示,用户在Web浏览器中输入统一资源定位符(URL,UniformResource Locator),即服务器地址,访问服务器动态生成的超文本标记语言(HTML,Hyper Text Mark-up Language)页面,该页面通过TCP连接发送给客户端的浏览器。
在图1中,Web服务器上的Web应用程序需要遵循超文本传输协议(HTTP,Hyper Text Transfer Protocol),该协议要求所有请求均从浏览器客户端发起。当客户端需要访问某个用户界面时,首先向Web服务器发送HTTP请求;Web服务器收到请求后,交给服务器端的业务处理程序进行处理;处理完成后,根据结果动态生成HTML格式的用户界面,继而Web服务器将表示用户界面的回应消息反馈给客户端浏览器,浏览器则在屏幕上显示新的用户界面。
网管系统是对用户网络进行管理的软件应用程序系统,包括两种,一种是基于客户端/服务器(C/S,Client/Server)结构的,另一种是基于B/S结构的。基于B/S结构的网管系统即为一种Web应用程序,称为Web网管系统。Web网管系统的权限控制是针对访问Web网管系统的不同用户的功能限制,通常包括两类限制,即操作权限和资源访问权限。访问网管系统的用户登录后,系统会根据系统管理员分配好的权限对该用户的权限进行限制
网管系统包括很多内容,如告警、性能、拓扑、网络计费和流量监控等,现有的网管系统实现方案中,上述内容分布在不同的网管产品中,因此各网管产品的权限控制也是独立的。
图2是现有的Web网管系统实现方案以及其中的权限控制实现方案示意图。如图2所示,在现有方案中,根据各业务组件的特性,将关联性比较强的业务组件耦合在一起,形成独立的网管产品,在该网管产品中进行统一的权限控制。这里业务组件就是实现网管系统中的一项内容的模块,如实现网络计费的业务组件、实现告警的业务组件等。例如,将告警、性能、拓扑等业务组件耦合成基础网管产品,捆绑在一起进行销售,使用统一的权限控制;而网络计费组件和网络流量监控组件形成另外一套产品,进行统一的权限控制。
但是现有的Web网管系统实现方案中权限控制方案存在如下缺点:
1、不同网管产品中的权限控制往往是重复控制,即权限控制存在冗余;针对公共资源(如设备资源),各不同的网管产品都要开发自己的权限控制方案;
2、由于不同网管产品之间的独立性,用户需要购买多个网管产品,并且需要在每个产品中都完成一遍用户注册和权限分配的流程,因此用户使用起来很不方便;
3、往往是针对一个网管产品进行整体的权限控制,不区分组件,因此一个网管产品不具备组件的增删扩展能力。
综上所述,现有的网管系统实现方案,虽然可以做到各个网管产品的权限控制,但是还不能够满足网管系统对网络管理的统一性、方便性和业务组件的可扩展性要求。
发明内容
本发明提供了一种在网管系统中实现权限控制的方法,该方法能够满足网管系统对网络管理的统一性、方便性和业务组件的可扩展性要求。
本发明还提供了一种网管系统,该网管系统能够满足对网络管理的统一性、方便性和业务组件的可扩展性要求
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明公开了一种在网管系统中实现权限控制的方法,该方法包括:
将网管系统中的授权用户进行分级,不同级别的授权用户具有不同的基本权限;
在网管系统启动时,获取网管系统中的各业务组件的权限配置文件;所述权限配置文件包含不同级别的授权用户对该权限配置文件所属的业务组件进行相关操作的权限信息;
根据所述各配置文件以及各级别授权用户的基本权限生成包含每个级别授权用户的权限信息的权限控制信息表,并保存到网管系统的内存中;
当授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制。
本发明还公开了一种网管系统,该网管系统包括:权限信息收集模块、内存模块、权限控制模块,其中,
权限信息收集模块,用于获取所述网管系统中的不同级别授权用户的不同基本权限信息;用于在网管系统启动时,获取网管系统中的各业务组件的权限配置文件,所述权限配置文件包含不同级别的授权用户对该权限配置文件所属的业务组件进行相关操作的权限信息;用于根据所述各配置文件以及各级别授权用户的基本权限生成包含每个级别授权用户的权限信息的权限控制信息表,并保存到内存模块中;
内存模块,用于存储权限控制信息表;
权限控制模块,用于在授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制。
由上述技术方案可见,本发明的方案包括:将网管系统中的授权用户进行分级,不同级别的授权用户具有不同的基本权限;在网管系统启动时,获取网管系统中的各业务组件的权限配置文件;根据所述各配置文件以及各级别授权用户的基本权限生成权限控制信息表,并保存到网管系统的内存中;当授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制。在本发明的上述技术方案中,由于根据各业务组件的配置文件以及各级别授权用户的基本权限生成了统一的权限控制信息表,因此可以根据权限控制信息表进行统一的权限控制;由于在网管系统启动时,将各个组件的权限配置文件内容一次性地存储到了内存中,各个组件的权限被统一地管理,对用户来说,只需要分配一次权限即可,因此方便了用户的使用;并且由于各个组件的配置文件是独立的,因此增删组件时,对于权限控制部分来说只需要增删相应组件的配置文件即可。可见本发明的技术方案能够满足网管系统对网络管理的统一性、方便性和业务组件的可扩展性要求。
具体实施方式
图3是本发明实施例一种在网管系统中实现权限控制的方法的流程图。如图3所示,该方法包括以下步骤:
步骤301,将网管系统中的授权用户进行分级,不同级别的授权用户具有不同的基本权限。
本步骤中,基本权限是对网管系统中的基础资源进行管理的权限。网管系统中的基础资源包括:设备、数据库和用户等可以被网管系统管理的资源。
步骤302,在网管系统启动时,获取网管系统中的各业务组件的权限配置文件;所述权限配置文件包含不同级别的授权用户对该权限配置文件所属的业务组件进行相关操作的权限信息。
步骤303,根据所述各配置文件以及各级别授权用户的基本权限生成包含每个级别授权用户的权限信息的权限控制信息表,并保存到网管系统的内存中。
步骤304,当授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制。
在上述方案中,由于根据各业务组件的配置文件以及各级别授权用户的基本权限生成了统一的权限控制信息表,因此可以根据权限控制信息表进行统一的权限控制;由于在网管系统启动时,将各个组件的权限配置文件内容一次性地存储到了内存中,各个组件的权限被统一地管理,对用户来说,只需要分配一次权限即可,因此方便了用户的使用;并且由于各个组件的配置文件是独立的,因此增删组件时,对于权限控制部分来说只需要增删相应组件的配置文件即可。可见上述技术方案能够满足网管系统对网络管理的统一性、方便性和业务组件的可扩展性要求。
为使本发明的目的技术方案及优点更加清楚明白,以下对实现本发明的技术关键点进行说明。
一、对授权用户进行分级
在本发明中,可以使得高级别的授权用户的基本权限覆盖低级别的授权用户的基本权限;最高级别的授权用户具有所有的基本权限。在本发明的一个实施例中,将Web网管系统中的授权用户分为如下四个级别,且基本权限逐步放大:
1)查看员,仅能对Web网管系统的各项功能进行浏览,不能对设备和数据库执行各项操作,也不能设置各种参数。这里,对于Web网管系统可以管理的基础资源,以设备和数据库为例进行了说明,当然网管系统中还有其他的基础资源,如被管理的用户等,在未来也有可能出现新的基础资源,这里不再一一列举。
2)维护员,相当于地方网管员,对Web网管系统中的部分设备,如一个区域内的设备具有管理权限,可以对可管理的设备进行操作和参数配置。
3)管理员,相当于中央网管员,对加入Web网管系统中进行管理的所所有设备都有管理权限,都可以进行操作和参数配置。与维护员不同的还有,管理员可以创建其他的授权用户(系统超级管理员除外),可以进行系统级别的维护和参数配置。
4)系统超级管理员,是一个特殊的管理员,系统中是唯一的,在系统中默认存在,不允许修改或删除,可以执行任何操作。与管理员不同的是,部分功能可以指定为只允许系统超级管理员执行。
系统超级管理员在Web网管系统中是唯一的,不能再创建了。其他新创建的用户,一定是管理员、维护员和查看员中的一种。根据上述的分级方式,Web网管系统自动对新创建的用户的权限分配。
二、对用户进行授权
在本发明的一个实施例中,在Web网管系统中对新创建的用户的进行的流程如下:
1)在创建用户时,首先为用户指定其级别,即指定用户为查看员/维护员/管理员。这样,用户就具有了对Web网管系统中的基础资源进行管理的基本权限级别。
2)然后为该用户分配设备管理权限。
在本实施例中对设备权限的分配过程进行了优化,引入了设备组的概念。这里设备组是对设备管理的一种逻辑分类,例如,设备组A包括设备a1和设备a2,设备组B包括设备b1和设备b2等。设备组是设备的逻辑集合,设备组之间可以相互交叉和包含。根据不同授权用户的管理需要,可以给用户分配不同的设备组,以此来完成用户的设备权限分配。到此授权用户具备了web网管系统中的基本权限,即包括:对设备的管理权限和对数据库的管理权限。
这里只以基础资源中的设备为例来说明,对于数据库等其他的基础资源可以根据实际的情况进行分配,这里不再一一列举。
3)在Web网管系统启动时,系统会自动收集各个业务组件的各权限配置文件;根据所述各业务组件的配置文件以及各级别授权用户的基本权限生成包含每个级别授权用户的权限信息的权限控制信息表,并保存到网管系统的内存中。到此完成了对不同的授权过程,各不同级别的授权用户的所有权限信息都记录在权限控制信息表中。
这里业务组件的权限配置文件是包含不同级别的授权用户对该业务组件进行相关操作的权限信息的文件,具体可以包括:不同授权用户对该业务组件中的各URL进行访问的权限以及执行该业务组件中的相关操作的权限。权限配置文件是本发明中为了实现统一授权而为各个业务组件所配置的文件。下面是在本发明的一个实施例中的权限配置文件的结构示意:
操作权限实体定义:
<操作权限>
<名称>***</名称>
<描述>***</描述>
<用户操作权限类型>***</用户操作权限类型>
<子权限列表>
<子权限名称>***</子权限名称>
</子权限列表>
</操作权限>
上面子权限列表中只显示子权限名称,子权限也是操作权限,采用相同的结构。
操作与URL关联实体定义:
<关联映射>
<操作权限名称>***</操作权限名称>
<URL列表>
<URL>***</URL>
</URL列表>
</关联映射>
通过上述结构,就可以帮助各个业务组件构造自己组件的业务功能的用户操作权限以及URL权限。
在web网管系统中,各个业务组件中的配置文件可以放在相同的目录中,如conf目录下,文件名以相同的文件后缀结尾,例如:privilege-def.xml。这样,A组件的配置文件就可以是conf/A-privilege-def.xml,B组件的配置文件就可以是conf/B-privilege-def.xml。在Web网管系统启动时,会自动加载这些配置文件,将配置文件中的操作权限信息和URL权限信息注册到内存中的权限信息控制表中,供以后的权限控制过程使用。在新的业务组件进行安装或者旧组件进行卸载时,网管系统会重新加载各个业务组件的权限配置文件,保证对业务组件增删扩展性的支持。
图4是本发明实施例在网管系统中实现权限控制的方法的图形示意图。如图4所示,Web网管系统启动后,配置文件中的操作权限信息和URL权限信息会被注册到内存中的权限信息控制表中(图4中示意性用箭头表示了注册过程)。之后,当授权用户登录Web网管系统启动后,就可以根据权限信息控制表进行权限控制了。
三、根据授权结果对登录用户进行权限控制
当授权用户登录Web网管系统后,根据权限控制信息表中的该用户所对应的权限内容对该用户的各个操作进行控制。
例如,参见图4,对于设备权限,用户无权访问的设备将不会展示给用户,此项功能由权限控制模块中的设备权限过滤功能模块完成,当授权用户登录到网管系统时,设备权限过滤功能模块从权限控制信息表中获取该授权用户可管理的设备信息,并放入内存中维护,当授权用户执行各种业务操作时,可管理的设备将会被从内存中获取,只有可管理的设备才执行授权用户的操作,即只有该授权用户可管理的设备才执行该授权用户对设备执行的各种业务操作。对于其他的基础资源权限,如数据库权限等,用户无权访问的基础资源不会展示给用户,且各个基础资源权限功能由权限控制模块中的相应基础资源权限过滤功能模块完成,如数据库权限过滤模块等,在图4中未画出。
参见图4,对于操作权限,用户在点击页面功能按钮进行页面导航时,操作权限过滤功能模块将进行操作权限计算,根据结果过滤掉用户无权限的页面元素,仅展示用户有权限的页面元素;此项功能一般都是由页面开发人员在设计页面时,对页面中的元素进行显示控制,这些显示控制往往是根据登录用户的不同来控制是否显示的,这种方式已由页面开发人员设计时已经指定好了,不同授权用户访问时,操作权限过滤功能模块根据权限控制信息表判断一下,就可以控制这个页面元素是否显示,从而对页面功能进行保护。
参见图4,对于URL权限,当授权用户登录系统后,如果该授权用户通过点击页面按钮进行页面URL导航或者直接输入URL,则URL权限过滤功能模块根据权限控制信息表判断该授权用户是否有访问该URL的权限,是则允许该授权用户访问该URL所对应的页面,否则拒绝;例如,如果用户直接通过输入功能页面URL的方式访问功能页面,那么输入的URL信息将会经过URL权限过滤功能模块执行过滤,即根据权限控制信息表中的各个业务组件的URL注册信息判定当前的URL是否是有权限的,如果有权限,则正常展示功能页面给用户,如果没有权限访问,将提示用户没有权限访问,阻止用户试图通过URL直接访问的行为。
当然,在图4中,权限控制模块所包含的各种权限过滤功能模块除了图4中示意出的三种模块以外,还可以其他的权限过滤功能模块,这可以根据实际情况而定。
通过上述实施例可以看出,利用本发明的技术方案后,不只是关联性很强的业务组件可以打包成一个独立的网管产品,而是任何不同的业务组件都可以打包成一个独立的网管产品,并进行统一的权限控制,从而避免了现有技术方案中的不同的业务组件根据关联性被打包成不同的网管产品所造成的权限控制的冗余和用户使用的不便利性,并且从权限控制的角度来看,本发明的技术方案可以支持任意业务组件的增加和删除。
此外,在本发明的技术方案中,同一网管产品中的组件不会形成功能耦合,从而保证了各组件的独立性和可扩展性不被破坏;而且任意的各组件功都可以打包在一个网管产品中,因此不同业务组件之间的功能交互也变得容易实现。
图5是本发明实施例一种网管系统的组成结构框图。如图5所示,该网管系统包括:权限信息收集模块501、内存模块502、权限控制模块503,其中:
权限信息收集模块501,用于获取所述网管系统中的不同级别授权用户的不同基本权限信息;用于在网管系统启动时,获取网管系统中的各业务组件的权限配置文件,所述权限配置文件包含不同级别的授权用户对该权限配置文件所属的业务组件进行相关操作的权限信息;用于根据所述各配置文件以及各级别授权用户的基本权限生成包含每个级别授权用户的权限信息的权限控制信息表,并保存到内存模块502中;
内存模块502,用于存储权限控制信息表;
权限控制模块502,用于在授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制。
如图5所示的网管系统还进一步包括:分级模块504,用于将网管系统中的授权用户进行分级,不同级别的授权用户具有不同的基本权限,其中,高级别的授权用户的权限覆盖低级别的授权用户的权限,最高级别的授权用户具有所有的基本权限;用于将不同级别授权用户的基本权限信息发送给所述权限信息收集模块501。
在图5中,权限信息收集模块502,用于从指定的同一目录下获取网管系统中的各业务组件的权限配置文件。
在图5中,权限信息收集模块502,用于获取不同级别授权用户对于网管系统中的基础资源进行管理的基本权限信息;用于在网管系统启动时,获取网管系统中的各业务组件的权限配置文件,所述权限配置文件包括:不同授权用户对配置文件所属业务组件中的各统一资源定位符URL进行访问的权限以及执行该业务组件中的相关操作的权限。
在图5中,权限控制模块503包括:基础资源权限过滤模块505、操作权限过滤模块506和URL权限过滤模块507,其中,
基础资源权限过滤模块505,用于从所述权限控制信息表中获取登录网管系统的授权用户可管理的基础资源信息,使得只有该授权用户可管理的基础资源才执行该授权用户对基础资源执行的各种业务操作;
基础资源权限过滤模块包括:设备权限过滤模块、数据库权限过滤模块等与各类基础资源对应的权限过滤模块。
操作权限过滤模块506,用于在登录网管系统的该授权用户访问页面时,从所述权限控制信息表中获取该授权用户可操作的页面元素信息,使得只有该授权用户有权限操作的页面元素才会显示给该授权用户;
URL权限过滤模块507,用于在登录网管系统的授权用户通过点击页面按钮进行页面URL导航或者直接输入URL时,根据权限控制信息表判断该授权用户是否有访问该URL的权限,是则允许该授权用户访问该URL所对应的页面,否则拒绝。
由上述技术方案可见,本发明实施例中的这种将网管系统中的授权用户进行分级,不同级别的授权用户具有不同的基本权限,在网管系统启动时,获取网管系统中的各业务组件的权限配置文件,根据所述各配置文件以及各级别授权用户的基本权限生成权限控制信息表,并保存到网管系统的内存中,当授权用户登录到网管系统时,根据所述权限控制信息表对该授权用户的操作进行控制的技术方案能够满足网管系统对网络管理的统一性、方便性和业务组件的可扩展性要求。并且很好地实现了网络管理和用户权限管理的融合,易于用户更好的对网络环境进行管理,兼容于各种浏览器,不受浏览器限制,可以广泛应用。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。