构与产品,其中就包括企业服务总线和数据服务服务器等产品。单点登录是进行企业门户建设的关键步骤之一,实现了用户操作层面上的系统之间的灵活跳转。用户只需一次登录,就可以根据权限进入不同的应用系统,省去了重复验证的烦琐,这是解决系统孤岛的基础工作。CAS(Ce
tralAuthe
ticatio
Service)12是Yale大学发起的一个开源项目,为Web应用系统提供一种可靠的单点登录方法,CAS在2004年12月正式成为JA—SIG的一个项目,是目前比较流行的服务于企业单点登录的解决方案之一。CAS、WSO2的ESB和DSS(DataServicesServer)都是基于ApacheLice
se20协议的,可以进行二次开发与部署。本文主要在它们的基础上进行开发与实现。32实现加入单点登录的应用系统,在调用服务时可以携带单点登录Toke
。没有加入单点登录的应用系统,需要先进行登录,再携带单点登录Toke
进行服务调用。因此,我们在CAS服务器、ESB服务器和应用系统三部分,进行了的实现开发,主要为了实现两种命令调用:一个是登录,一个是带单点登
f录Toke
的服务调用。实现方法具体如下:1)CAS开发部分。针对本文的设计,基于CAS服务器的开发,实现如图4的两个服务。其中,Accou
tI
fo类存储的是应用系统账号类型、账号等信息。2)WSO2ESB开发部分。基于ESB服务器,需要进行以下开发:①通发布logi
aar文件到ESB服务器(文件夹路径为:repositorydeployme
tserveraxis2services)的方式,在ESB上发布logi
的web服务。②开发并发布起“单点登录过滤器”作用的ClassMediator(基于orgapachesy
apsemediatorsAbstractMediator类)。该过滤器根据客户端应用的SOAP请求,解析并判断包含在Header中的是待验证的登录信息,还是单点登录的Toke
信息。进而决定是到单点登录服务器进行验证请求(存入缓存),或是根据Toke
获取账号信息(从缓存中读取)。由于无论是否缓存账号信息,都可以根据Toke
获得账号信息(如果没有缓存,到单点登录服务器调用服务),所以该过滤器支持ESB的集群部署。③通过ESB管理控制台,开发并发布Logi
Seque
ce,
f设置logi
服务使用该Seque
ce。在客户端应用调用登录操作时,Logi
Seque
ce进行单点登录服务器的登录调用,直接返回单点登录Toke
(不执行logi
服务的实现内容)。其代码的主体部分如图5。④通ESB管理控制台,开
发并发布CheckSeque
ce,设置所有需要用户账号信息的服务都使用该Seque
ce,并在ESB的控制台界面中给服务制定一个初始化参数(应用系统账号类型)。在客户端应用进行服务调r