基于CAS的统一权限平台的设计与实现*

2014-07-01 23:35
舰船电子工程 2014年1期
关键词:单点组件统一

杨 薇 刘 阳

(1.91550部队 大连 116023)(2.大连东软信息学院 大连 116023)

基于CAS的统一权限平台的设计与实现*

杨 薇1刘 阳2

(1.91550部队 大连 116023)(2.大连东软信息学院 大连 116023)

针对多个信息系统之间因采用的技术和平台不同而无法进行资源共享的问题,采用单点登录技术,以基于MVC模式的多层体系作为权限系统的系统架构,EJB作为中间件服务技术,设计并实现了统一权限管理的信息化平台,为信息化业务系统提供统一的用户管理和权限控制功能,对其它类似系统具有较高参考价值。

CAS; 统一权限平台; 权限管理; 业务应用系统

Class Number TP393

1 引言

目前,随着计算机技术的发展,各行各业的信息化建设取得非常大的进展。在信息化建设中,经常存在的一个问题就是,各信息系统内部存在着多个信息子系统,这些子系统各自实现不同的功能[1]。随着这些子系统的建立,一些问题也暴露出来,如建设与应用严重脱节,各系统重复建设,系统之间因采用了不同的技术平台和信息标准而形成信息孤岛等。

为解决以上问题,需要建立一个“资源共享平台”,其目的是搭建一个高层次的应用平台,根据用户的不同身份,统一分配权限[2],为各子信息系统提供自身数据的维护入口,以及对局域网内其它子信息系统的共享数据的查询入口,实现各种资源与信息数据共享,消除信息孤岛。

2 系统组成

统一权限平台主要由权限管理系统、权限服务接口系统及CAS单点登录系统组成。

图1 系统部署图

统一权限平台服务器由权限系统服务器、权限接口服务器、CAS服务器,数据库服务器组成。出于安全考虑,数据库服务器未与CAS服务器、权限系统等服务器位于同一网段。信息化业务应用客户端可以通过PC、手机、平板等方式访问业务系统,信息化业务系统直接接入主干网。图1为系统的部署图。

3 统一权限平台设计

3.1 平台架构设计

统一权限平台采用CAS框架作为单点登录的实现技术[3],以基于MVC模式的多层体系作为权限系统的系统架构,并采用Enterprise JavaBean作为中间件服务技术。

从权限认证的角度出发,统一资源平台可分为统一权限平台与核心业务应用的集合两部分。而统一权限平台由权限系统、单点登录系统、权限服务接口应用三部分组成。

CAS是针对Web应用的单点登录框架,其主要的任务就是安全地完成用户的身份验证工作[4]。权限管理系统是统一权限平台的主要组成部分,负责用户、角色、授权等方面的管理。权限管理系统采用Java三层经典模式进行开发[5]。表示层采用了Spring MVC技术,逻辑层采用了Spring IoC技术、持久层采用了Hibernate技术。

3.2 权限管理系统架构设计

权限管理系统从层次结构上分为表示层、逻辑层和持久层,系统架构如图2所示。

图2 权限管理系统架构图

1) 表示层设计

权限管理系统的表示层设计为三部分:DispatcherServer负责接收用户的Web请求、调用Web请求控制器组件和将数据分析、整理、转换、打包至数据模型组件;数据格式校验组件用于完成数据模型组件的数据格式校验,通用消息组件负责在页面进行消息展示;Web请求控制组件主要负责调用业务逻辑处理组件并将结果返回客户端。Web请求控制器组件和数据模型组件采用了普通的POJO进行设计,降低了与Java EE Web处理组件的耦合度[6]。

2) 逻辑层设计

权限管理系统选择Spring IoC作为业务层的技术框架,权限管理系统的通用组件大都是在其基础上进行设计的。

权限管理系统的逻辑层设计为三部分:Spring Core是业务逻辑组件的运行基础、Spring AOP是业务逻辑组件的事务处理基础;异常处理组件使得权限管理系统可以专注处理自身的功能,日志组件则无侵入地对权限管理系统的操作进行记录;业务处理组件完成基于RBAC的功能调用。业务处理组件和领域数据模型组件采用了普通的POJO进行设计,不依赖于Spring Framework。

3) 持久层设计

RBAC的功能模型比较简洁,其用户、角色、权限的对应关系清楚,故采用ORM持久化模型非常合适[7]。Hibernate是ORM框架的事实标准,所以权限管理系统选择Hibernate作为其持久层框架。

权限管理系统的持久层框架虽然选用了Hibernate,但也是运行在Spring Context的基础上。权限管理系统的持久层分为两部分:通用查询组件以Hibernate HQL为基础进行设计,降低了查询语句的复杂度;分页组件基于Hibernate ORM思想进行设计,可以方便的进行数据库移植;日志组件对用户、角色、授权等写入操作进行记录,方便对权限管理系统进行安全审计。

3.3 单点登录设计

单点登录(Single Sign On,SSO),是目前比较流行的企业业务整合的解决方案之一[8]。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统[9]。统一权限平台的单点登录分为单点登录客户端、单点登录服务器。

平台采用CAS实现单点登录。CAS具备开源、独立部署、支持多种Web应用客户端等优点,能够满足统一权限平台关于单点登录的要求[10]。从安全性和稳定性角度出发,CAS被部署在一台单独Linux服务器上面,应用服务器选择了Jboss,还需要对服务器的DNS以及业务应用系统单独设置。通过访问接口服务,CAS可以读取权限系统的用户认证信息。

4 统一权限平台实现

4.1 权限管理系统包结构

权限管理系统均以模块为开发单位,每个模块分为表示层(action)、业务层(service)、持久层(dao)。其中org.ly.apps.auth.bs包主要用于存放权限系统的功能模块。包括系统用户信息管理、角色管理、授权管理以及系统的实体组件等,是权限系统的核心业务组件包,包结构如表1所示。

表1 org.ly.apps.auth.common包

4.2 数据库设计

权限管理系统的数据库逻辑设计完全遵守数据库设计要求及其规范而进行,详细的权限管理系统的逻辑模型如图3所示。

图3 权限系统概念模型

4.3 权限管理系统表现层控制器代码

控制层的主要作用是响应来自视图的请求,定位业务组件处理该请求并返回响应视图。以授权控制器代码为例进行说明:

@Controller

@RequestMapping("/grant")

public class GrantAction extends CommonAction {

/**

* 角色被授予功能

* @param model

*/

@RequestMapping("/save")

public String roleGrant(RoleModel model) {

model.setFuncids(f.getSfuncids().split(","));

BeanCopy.copyProperties(model, grantDto);

service.saveFuncOfRole(grantDto);

return “query”;

}

……

@Resource private GrantService service;

}

4.4 权限管理系统持久层代码

持久层位于三层操作的底层,一般是对数据进行操作。以用户信息数据对象代码为例进行说明:

@Repository

public class UserDaoImp implements UserDao {

public void updateUser(DTO dto) {

String keyName="userid";

Serializable key=(Serializable)getProperty(dto, keyName);

Session session=sf.getCurrentSession();

Object entity=session.load(Entitys.ENTITY_USER, key);

setProperty(dto, "userpwd", enc((String)getProperty(dto, "userpwd")));

copyProperties(dto, entity);

session.update(entity);

}

@Resource private SessionFactory sf;

...... }

@ Repository是类级别上的注解,用以说明这是一个数据访问组件。 “@Resource private SessionFactory sf”则表明对底层Hibernate会话工厂进行引用,Hibernate会话工厂使用前需要完成对数据源的初始化配置。

5 结语

本文所设计与实现的统一权限平台为信息化应用提供了统一的登录入口、身份认证、用户管理与权限控制,有效地实现了统一权限平台访问的安全控制。平台目前已经得到应用,不足之处在于权限和操作类型之间的关系定义还不够清晰,阻碍了系统的扩展,还需进一步的研究才能更有效地实现。随着信息化建设的不断深入,用户对系统安全控制要求的不断提高和细化,权限的管理和控制还有待进一步的研究和探讨。

[1] 方义秋,王桂丹.面向方面的动态软件架构研究[J].微电子学与计算机,2011(3):32-33.

[2] 隋宏伟,王化雨,刘宏,等.可复用的用户权限管理构件系统的设计与实现[J].计算机应用,2005,25(5):1166-1169.

[3] 袁占亭,张秋余,杨洁.基于Web Services的企业应用集成解决方案研究[J].计算机集成制造系统,2004(4):12-15.

[4] 杜宏伟,盛丰,于剑.一个通用权限管理工具的设计与实现[J].铁路计算机应用,2003,12(1):23-24.

[5] 丁仲,左春.用于RBAC权限管理的面向对象框架闭[J].计算机工程与应用,2005(17):43-45.

[6] 毛碧波,孙玉芳.角色访问控制[J].计算机科学,2003,30(1):17-18.

[7] 曾明,陈立定.基于树型角色的访问控制策略及其实现[J].华南理工大学学报,2004,32(9):21-22.

[8] 严悍,张宏,许满武.基于角色访问控制对象建模及实现[J],计算机学报,2000,23(10):164-171.

[9] ISO/IEC7492-2.信息处理系统开放系统互连基本参考模型.第2部分:安全体系结构,1989:26-28.

[10] Ferraioio D, Kuhn R. RoleBased Access Controls, 15th NIST-NCSC National ComPuter Security Conference,2006:547-563.

Design and Implementation of Unite Authorization Platform Based on CAS

YANG Wei1LIU Yang2

(1. No. 91550 Troops of PLA, Dalian 116023)(2. Dalian Neusoft University of Information, Dalian 116023)

To resolve the problem that different information systems are usually unable to share resource for various techniques or platforms, the unite authorization platform is designed and implemented applying multilayer authorization system frame on the basis of MVC mode. This authorization platform, adopting the technique of single sign on(SSO) and enterprise javabean(EJB) for entry and mid-serving method respectively, can be employed to perform unified user management and authority control function for information-based operation system.

CAS, unite authorization platform, authority management, business application system

2013年7月5日,

2013年8月25日

杨薇,女,硕士,高级工程师,研究方向:测控软件研制。刘阳,男,硕士,高级工程师,研究方向:软件架构。

TP393

10.3969/j.issn1672-9730.2014.01.032

猜你喜欢
单点组件统一
单点渐进无模成型的回弹特性
无人机智能巡检在光伏电站组件诊断中的应用
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
坚持严管和厚爱相统一的着力点
一种嵌入式软件组件更新方法的研究与实现
碑和帖的统一,心和形的统一,人和艺的统一
统一数量再比较
单点的梦想
数字电视地面传输用单频网与单点发射的效果比较
企业信息门户单点登录方案设计