基于kasai的安全管理系统
2011-11-25陈红梅
陈红梅
(商丘师范学院 计算机科学系,商丘 476000)
基于kasai的安全管理系统
陈红梅
(商丘师范学院 计算机科学系,商丘 476000)
0 引言
企业的网络正逐渐地覆盖全国,甚至全世界。并行利用和访问企业综合数据的人员身份越来越多样化,有自己的员工、供货商、承包商、用户等。怎样安全有效地利用企业资源,怎样认证不同的人员身份,怎样进行授权和审计跟踪,怎样在安全地认证身份的基础上开展其它的应用。这一切是我们企业所共同面对的严峻现实。根据这个现实的需求、设计并开发了本系统。
1 技术应用
1.1 struts2的特性
1.1.1 线程模式
Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事[1],并且要在开发时特别小心。Action
资源必须是线程安全的或同步的。 Struts1 Action对象为每一个请求产生一个实例,因此没
有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
1.1.2 可测性
测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展——Struts TestCase——提供了一套Struts1的模拟对象(来进行测试)。 Struts Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
1.2 hibernate技术介绍
Hibernate是一个开放源代码的对象关系映射框架[2],它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactory、Transaction、Query 和Con fi guration。这5个核心接口在任何开发中都会用到[3]。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
2 具体功能
2.1 系统验证
该功能模块完全是通过Kasai提供的功能来完成的,此模块不提供界面而是提供了可用的验证接口供企业系统使用。
2.1.1 用户验证
1)身份验证
功能输入:用户名、密码。功能处理:调用Kasai系统的功能,在Kasai数据库中核对用户名和密码。
功能输出:验证结果
例如:当用户登录企业应用程序时,验证该用户是否为合法用户,并向系统返回验证结果,因此只有合法用户才登入系统。
2)组验证
功能输入:用户名、组名。
功能处理:调用Kasai系统的功能,在Kasai数据库中查找组人员列表核对该用户是否为组成员。功能输出:验证结果
例如:通过用户名、组名,验证一个用户是否属于一个已定义的工作组并返回结果。
3)角色验证
功能输入:用户名、角色名。
功能处理:调用Kasai系统的功能,该用户是否为该角色成员。
功能输出:验证结果
例如:公司内部有一些管理层的界面只有经理级别的人才能够观看,我们关心的是经理级别而不是哪个部门的经理,所以可以使用这个功能来验证其身份。
2.1.2 权限验证
1)用户权限验证
(1)用户对某些事物的权限验证
功能输入:用户、操作对象、操作行为。
功能处理;系统调用Kasai的功能,在Kasai数据库中查找用户的角色从而确定该用户是否具有对该操作对象执行这种操作的权限。
功能输出:验证结果
例如:验证一个客户是否有浏览公司网站业务内容的权力,或是部门经理在调配人员时也需要验证他是否对这些所有的人员都拥有调配的权力,此功能实现这个验证过程。
(2)用户角色权限验证
功能输入:用户、操作对象、角色(一组操作)
功能处理:系统调用Kasai的功能,在Kasai数据库中查找该用户的角色,来核对该用户是否拥有对这个操作对象的这种角色。
功能输出:验证结果
例如:验证一名员工是否是一个部门的经理,或是主管等等。
2)组权限验证
组对某些事物的权限验证
功能输入:组、操作对象、操作行为。
功能处理;系统调用Kasai的功能,在Kasai数据库中查找该组的角色从而确定该用户是否
有对该操作对象执行这种操作的权限。
功能输出:验证结果
例如:我们想要判断销售部下的一个工作组是否能够更改某一个商品的价格,本功能提供这样的验证。
2.2 系统授权
2.2.1 授予(取消)人员特殊的权限
功能输入:被授权人员的信息、授予的权力信息、行使权力的对象信息和授权(或取消权限)信号。
功能处理:把授权信息存储到Kasai数据库,同时再加入一些扩展功能信息然后存入本地系统数据库,以供日后扩展功能使用
功能输出:返回授权结果。
例如:某个员工在完成一项特殊任务的时候可能会需要某一个特殊的权限,此权限与他的职位不相关,那么我们就可以通过这个方法给该员工一个特殊的权力去处理某件事,任务完成后再将这个权限取消。
2.2.2 禁用(启用)人员
功能输入:需要被禁用的人员信息和禁用(或启用)信号。
功能处理:把禁用(或启用)信息存储到Kasai数据库,同时再加入一些扩展功能信息然后存入本地系统数据库,以供日后扩展功能使用。
功能输出:返回操作结果。
例如:公司想要把某个员工暂时停职,以及日后的复职工作由本功能实现。
2.2.3 授予(取消)人员角色
功能输入:被授予人员的信息、授予的角色信息、行使权力的对象信息和授予(或取消)角色信号。
功能输出:返回授予角色结果。
例如:有新的员工加入了公司,那么我们只需要输入该员工的id和他的职位和其他一些辅助信息,该员工就可以马上拥有该职位的所有权限,而不用我们把每一条具体的权限授给这个员工。
2.2.4 权限提升(降级)
功能输入:权限被改变的人员(或组)信息、新的角色(或权限)信息和新的可操作对象信息。
功能处理:系统把人员以前拥有的所有的权限全部清除,再赋予新的角色或权限,在Kasai和本地数据库中保存。
功能输出:返回改变后结果。
例如:当一个员工得到提升或者被降职的时候,我们需要把他原来的所有权限全部取消然后赋予他新的权限和操作对象,本功能实现的就是这个过程。
2.2.5 权限转移
功能输入:原人员信息、新人员信息。
功能处理:把新人员的旧权限清除,再把原人员的所有角色赋给新人员,在Kasai和本地数据库保存。
功能输出:返回改变后结果。
例如:公司要开除一名员工,同时让另一名员工顶替旧员工的位置,这样的情况可以用此功能来实现。
2.2.6 权限共享
功能输入:需要共享的权限。
功能处理:把目标权限赋予每一个人员和组,在Kasai和本地数据库保存。
功能输出:返回共享后结果。
例如:公司内可能会有一些非常低级的权限,需要所有人都拥有,我们可以通过这个功能将其共享,而不用手动把该功能加入到每一个人的身上。
2.2.7 用户维护
1)新建用户
功能输入:新用户的信息。
功能处理:在Kasai和本地数据库中添加新用户信息。
功能输出:返回添加后结果。
例如:公司有新员工加入时,员工信息的录入是必须的,本功能负责将其实现。
2)修改用户信息
功能输入:需要修改的用户信息。
功能处理:在Kasai和本地数据库中更新用户信息。
功能输出:返回修改后结果。
例如:公司在进行人事变动或者人员数据更新时需要此功能来实现对员工信息的维护。
3)删除用户
功能输入:将要删除的用户信息(一个或多个)。
功能处理:在Kasai和本地数据库中删除所选用户的全部信息。
功能输出:返回删除后结果。
例如:有人被公司开除或离开工作岗位时,需要在数据库中删除与其相关的信息以保证系统长久的安全性。
2.2.8 组维护
1)新建组
功能输入:新组信息、新组人员。
功能处理:在Kasai和本地数据库中添加组信息。
功能输出:返回添加后结果。
例如:成立新的工作组或者新的经销商类型,必须在系统中创建新的用户组来进行维护,这样的工作由本功能完成。
2)更新组信息
功能输入:需要修改的组信息。
功能处理:在Kasai和本地数据库中更新组信息
功能输出:返回修改后结果。
例如:需要更新该组的信息或说明时,由本功能完成。
3)取消组功能输入:将要删除的组信息(一个或多个)。功能处理:在Kasai和本地数据库中删除所选组的全部信息。
功能输出:返回删除后结果。
例如:工作组解散时在系统中清除相关信息时使用本功能。
4)向组中添加用户
功能输入:新用户信息。
功能处理:在Kasai和本地数据库中新建组的用户信息。
功能输出:返回添加后结果。
例如:工作组有新成员加入时需要更新该组的信息,由本功能完成。
5)从组中删除用户
功能输入:将要删除的用户信息(一个或多个)。
功能处理:在Kasai和本地数据库中删除所选用户的全部信息。
功能输出:返回删除后结果。
例如:工作组成员有所变动时需要删除该组的个别用户信息,由本功能完成。)修改组中的用户。
6)修改组中的用户
功能输入:将要修改的用户信息。
功能处理:在Kasai和本地数据库中修改用户的信息。
功能输出:返回修改后结果。
例如:工作组成员有所变动时需要更新该组的信息,由本功能完成。
7)组组之间的人员调动
功能输入:要调动的人员信息。
功能处理:在Kasai和本地数据库中一个组中删除所选用户的全部信息,在另一组中添加所有的人员信息。
功能输出:返回更新后结果。
例如:工作组之间人员相互调动,由本功能完成。
3 结论
此系统具有非常广泛的兼容性、易用性及强大的安全性。因此无论在什么情况下,本系统都能提供客户所要求的灵活可靠、节约开支并在企业范围内的用户身份认证服务,同时本系统还能够便捷的实现对角色的授权、人员分组以及对系统中操作对象的维护,使企业应用的效率更高,安全性更强,更加适应未来的发展。
[1]周智仁, 等. Java网络应用编程[M]. 高等教育出版社.2004: 61-33.
[2]李俊民. Oracle数据开发实例解析第一版[M]. 北京: 机械工业出版社, 2006: 20-50.
[3]魏善沛. Web数据库基础教程[M]. 北京: 中国铁道出版社, 2007: 87-89.
The general authority management system based on kasai
CHEN Hong-mei
Kasai是一个开源100%基于Java的认证与授权框架。它提供一个完善的,易于管理的许可方案来与你应用程序相结合的。这个框架的目的是为多用户应用程序提供一个使用简单但强大的安全环境。Kasai具有较高级别的安全抽象,接口更加通用;它的目标在于特定的安全需求。本系统是基于Kasai的安全管理系统,采用J2EE架构,使用struts2+hibernate开源框架来实现的。
J2EE;Struts2框架;Hibernate框架;Oracle数据库;Kasai
陈红梅(1973-),女,硕士研究生,研究方向为计算数学。
TP315
A
1009-0134(2011)1(上)-0187-03
10.3969/j.issn.1009-0134.2011.1(上).59
2010-11-09
国家自然科学基金项目(50323001);河南省基础与前沿研究项目(102300410244)。