(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf_第1页
(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf_第2页
(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf_第3页
(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf_第4页
(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(计算机系统结构专业论文)基于ejb3的远程服务访问安全性控制研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨工程大学硕士学位论文 摘要 随着互联网技术的普及和发展,开放性网络上的j 2 e e 体系结构变得越 来越流行,但同时开放性的网络导致企业级应用面临来自各方面的安全威胁。 如何保护信息不被非法获取、盗用、篡改和破坏,已成为所有企业级应用研 究者共同关心的重要课题。 本文从企业级系统应用层安全的角度出发,通过深入研究e j b 3 的远程 访问过程中各个环节的安全性发现,w e b 层和e j b 层之间的通信方式过于依 赖x m l 配置文件。为了解决这一问题,e j - b 层通过注解程序,采用反调用 w e b 层的方式,减少对x m l 配置文件的使用。通过a o p 与容器技术结合实 现e j b 的访问控制,将业务逻辑与安全模块分离。在角色信息管理方面,使 用目录服务器存储用户角色,来降低系统开发复杂度,提高系统的可移植性。 通过指定在e j b 组件和调用它的组件间传递安全身份。降低了安全服务在 j 2 e e 逻辑层处理的难度。 在上述研究的基础上,本文设计了一种基于e j b 3 0 的远程访问的安全机 制。定义了各模块的功能,着重实现了w e b 服务器与应用服务器安全模块、 安全拦截器模块和e j b 自身安全模块。这些模块的实现方式对建立企业级应 用的远程访问安全机制的研究有一定的参考价值。 关键词:e j b 3 远程访问;安全机制;角色管理 哈尔滨工程大学硕士学位论文 a b s t r a c t w i t ht h ep o p u l a r i t ya n dd e v e l o p m e n to fi n t e m e tt e c h n o l o g y , o p e nn e t w o r k o nt h ej 2 e ea r c h i t e c t u r eb e c o m i n gm o r ep o p u l a r , a tt h es a m et i m eo p e nn e t w o r k l e a dt oe n t e r p r i s ea p p l i c a t i o n sf a c i n gs e c u r i t yt h r e a tf r o ma l ls i d e s h o wt op r o t e c t i n f o r m a t i o nf r o mb e i n gi l l e g a l a c q u i s i t i o n , t h e f t ,t a m p e ra n dd e s t r u c t i o n , h a s b e c o m ea l l i m p o r t a n ti s s u e i sc o n c e r n e db ya l lr e s e a r c h e r so fe n t e r p r i s e a p p l i c a t i o n s f r o mt h ep o i n to fe n t e r p r i s es y s t e ma p p l i c a t i o n l a y e rs a f e t yi np a p e r , t h r o u g h d e e p l yr e s e a r c hv a r i o u sa s p e c t so fe j b 3r e m o t ea c c e s s ,c o m m u n i c a t i o nb e t w e e n w e bl a y e ra n de j bl a y e ro v e r - r e l i a n c eo nx m l c o n f i g u r a t i o nf i l e s i no r d e rt o s o l v et h i sp r o b l e m ,e j bl a y e rt h r o u g ht h ea n n o t a t i o np r o c e s s ,u s i n ga n t i c a l l e d w e bl a y e ra p p r o a c ht or e d u c et h eu s eo fx m lc o n f i g u r a t i o nf i l e s ;t h r o u g h c o m b i n ea o pw i t hc o n t a i n e rt e c h n o l o g yi m p l e m e n te j ba c c e s sc o n t r o l ,w h i c h m a k e sb u s i n e s sl o g i ca n ds e c u r i t ym o d u l e s e p a r a t e ;i nt h ea s p e c to fr o l e i n f o r m a t i o nm a n a g e m e n t ,u s i n gd i r e c t o r ys e r v e rs t o r eu s e rr o l e si no r d e rt or e d u c e c o m p l e x i t yo fs y s t e md e v e l o p m e n ta n di m p r o v es y s t e mp o r t a b i l i t y t h r o u g h t r a n s f e rs e c u r i t yi d e n t i t yb e t w e e nt h es p e c i f i e de j bc o m p o n e n ta n dc o m p o n e n t w h i c hi sr e d u c e st h ed i f f i c u l t yo fs e c u r i t ys e r v i c e si nt h ej 2 e e l o g i cl a y e r a tt h eb a s i so ft h es t u d i e s ,ak i n d o fe j b b a s e dr e m o t ea c c e s ss e c u r i t y m e c h a n i s m si sd e s i g n e d t h ed e f i n i t i o no ft h em o d u l e sf u n c t i o n ,f o c u so n i m p l e m e n t a t i o no ft h ew e bs e r v e ra n da p p l i c a t i o ns e r v e rs e c u r i t ym o d u l e ,s e c u r i t y i n t e r c e p t o r sm o d u l ea n de j bs e c u r i t ym o d u l e t h ed e s i g na n di m p l e m e n t a t i o no f t h o s em o d u l e sh a v er e f e r e n c ev a l u et or e s e a r c hr e m o t ea c c e s s s e c u r i t yo f e n t e r p r i s ea p p l i c a t i o n s k e y w o r d s :e j b 3 ;r e m o t ea c c e s s ;s e c u r i t ym e c h a n i s m ;r o l em a n a g e m e n t 哈尔滨工程大学 学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下, 由作者本人独立完成的。有关观点、方法、数据和文献的引用 已在文中指出,并与参考文献相对应。除文中已注明引用的内 容外,本论文不包含任何其他个人或集体已经公开发表的作品 成果。对本文的研究做出重要贡献的个人和集体,均己在文中 以明确方式标明。本人完全意识到本声明的法律结果由本人承 担。 t-l7 作者( 签字) :袁冲节 日期: c ,可年弓月j 徊 哈尔滨工程大学 学位论文授权使用声明 本人完全了解学校保护知识产权的有关规定,即研究生在校 攻读学位期间论文工作的知识产权属于哈尔滨工程大学。哈尔滨 工程大学有权保留并向国家有关部门或机构送交论文的复印件。 本人允许哈尔滨工程大学将论文的部分或全部内容编入有关数据 库进行检索,可采用影印、缩印或扫描等复制手段保存和汇编本 学位论文,可以公布论文的全部内容。同时本人保证毕业后结合 学位论文研究课题再撰写的论文一律注明作者第一署名单位为哈 尔滨工程大学。涉密学位论文待解密后适用本声明。 本论文( 口在授予学位后即可口在授予学位1 2 个月后 口 解密后) 由哈尔滨工程大学送交有关部门进行保存、汇编等。 作者( 签字) :嚷、捞导师( 签字) :莉蔺 。 r 、 日期: 年罗月斤日矽丫年弓月烨日 l 哈尔滨工程大学硕士学位论文 第1 章绪论 1 1 课题研究背景及意义 1 1 1 课题的背景 当今世界,因特网已经成为一个非常重要的信息交换平台,人们通过网 络获取大量的知识、财富以及日常关心的问题,现在社会是个信息膨胀的时 代,每个人都要依赖来自各种信息源的信息,尤其在其业务决策中需要依赖 于这些信息的准确性和可靠性。并且由于人们在关键业务和行业部门大量地 采用计算系统和网络技术,从而带来了新的威胁和风险【1 】。随着电子商务, 网上银行等业务的开展,因特网的安全受到了极大的重视【2 j 。 随着网络技术的进步和发展,实现w e b 应用程序的安全机制是w e b 应 用程序设计人员和编程人员必须面对的任务。随着j a v a 不断的进步和发展, 越来越多的企业选择j 2 e e 作为它们的解泱方案。在j 2 e e 中,w e b 容器支持 应用程序内置的安全机制【3 】。w - e b 应用程序的安全机制有二种组件:认证和 授权。基于j 2 e e 的w e b 容器提供三种类型的认证机制:基本认证、基于表 单的认证、相互认证。由于能够对认证用户界面进行定制,大多数的w e b 应 用程序都使用基于表单的认证。w e b 容器使用在w e b 应用程序的部署描述符 中定义的安全角色对应用程序的w e b 资源的访问进行授权。j 2 e e 是一个多 层应用服务框架,可以分为浏览器、w e b 服务器、e j b 服务器和数据库服务 器。e j b ( e n t e p r s r i ej a v a b a e n ) 是整个j 2 e e 的重要组成部分1 4 ,e j b 是使用 j a v a 语言构造可移植的、可重用的和可伸缩的业务应用程序平台。从其诞生 开始,e j b 就被号称为无需重新构造服务即可构造企业j a v a 应用程序的组件 模型或者框架。e j b 允许开发者集中精神构造业务逻辑,而不必在构造基础 结构代码上花费时间。从开发者的角度来说,e j b 是在称为e j b 容器的特定 运行环境中执行的一段j a v a 代码。容器提供若干组件服务。e j b 容器是j 2 e e 1 晗尔滨工程大掌硕士学位论文 服务器的主要部分之一,它为e j b 提供运行环境,提供各种系统级服务,负 责管理e j b 的生命周期、各种事务和e j b 的安全等。 安全问题,是一个永恒的话题,目前许多企业网络安全问题与安全技术 还处于探索阶段,还有许多人云亦云地简单购买安全产品f 5 】。随着企业信息 亿水平的提高,企业当前所面临的安全形势交得更勰严峻,不同种类的安全 威胁混合在一起给企业网络的安全带来了极大的挑战。企业在网络安全问题 上最大的困境是企业该如何在有限的资金条件下,达到投入与安全的平衡。 l 。l 。2 课题的意义 b s 模式越来越受欢逾,w e b 应用系统的发展依赖予网络,丽基予网络 的w e b 应用系统,不可避免的承受着互联网的开放性所带来的各种安全问 题,网络的开放性使得其安全性容易遭受各类攻击,从而导致系统信息泄漏 和修改。应用层安全是在应用程序内部执行访问控制原则,以阻止未授权的 访问,确保受保护资源只被授权用户使用,同时也要保证信息在传输过程中 的机密性和完整性。本课题研究的意义,主要可以总结为以下几个方面: ( 1 ) 可以有效的保护在w e b 服务器上重要的文件、冒录或重要的数据。 ( 2 ) 从远程用户向服务器发送信息时,对用户数据、用户资料或关键数 据的非法拦截和泄露,做出有效的保护。 ( 3 ) 使得应用系统信息的访问和传输可被有效豹控制,确保受访问资源 的鬻户身份是可鉴别的。 ( 4 ) 良好的安全策略可以有效的保护应用层,进行企业级安全的研究是 很有必要的。 本课题旨在寻找一种基于e j b 3 的数据安全策略与措施,从而保证系统 远程访问的安全。 1 2 国内外研究现状 我国w _ e b 技术应用相对落后。电子商务起步较晚,发展程度低,目前尚 2 啥尔滨工程大学硖士学位论文 停留在对安全、保密、认证、法律等技术手段和标准规范是否成熟可靠的讨 论层厦上,实际应用较少。其主要的困难是安全方面的闯题以及相关法规的 制定。国内外对远程访问的研究比较多,w e b 层的安全性研究的也很透彻【6 j 。 露前,e j b 容器的安全性的研究国内外基予疲耀服务器,有很多大的厂 商正在做这方面的研究,比如国内的金蝶,国外的i b m 、s u n 、b e a 还有开 源的j b o s s 等,匿内的很多高校期研究机构也有这方面的研究。 b e aw e b l o g i c 作为应用服务器中的杰出代表,在e j b 3 0 完成后不久, b e a 公司就推獭了一款新的服务器,除了支持原有的e j b 技术以外,这个产 品以最短的时间推出了支持e j b 3 0 最新功能的服务器。早期的应用服务器产 品对s u n 公司来说,更多是作为对企业级进行反馈和评估的实验产品。随着 e j b 技术的不断发展,w e b l o g i c 目前己经发布版本1 0 ,它是目前最流行的 应用服务器之一。它不仅实现e j b 3 。0 规范,是一个与j 2 e e 平台完全兼容产 品。b e a w e b l o g i c 提供了基于j a a s 、j s s e 等标准j 2 e ea p i 和b e a 公司自 开发的a p i 的安全框架,提供了完整强大的安全功能e 刀。它把整个企业应用 安框架分成认证层、授权层、完整性层和审计层,提供了包括认证、授权、 访问制、信息完整性、数字签名、审计等安全功能。在认证层,使用了j a a s 中认证框架。一旦认证成功,客户端就进入授权层获取访问企业资源( 如e j b ) 权限。如果企业中有多个应用服务器,则用户的认证信息需要在不同的服务 之传输,涉及传输的安全闯题,必须对用户的认证信息加密。w e b l o g i c 在授 权采用基于部署描述符的方式,在x m l 文件中声明用户、角色和保护域; 使雳访控制列表( a c c e s s c o n r t o l l i s t ,a c l ) 来进行授权。这种授权方式势必 带来维护困难、工作量大的缺点。它没有在e j b 容器中实现编程性授权,而 把这种编性授权豹实现留给了e j b ,这样做违反了安全逻辑与业务逻辑分离 的原则,带了混乱。w e b l o g i c 等应用服务器都是商业产品,其实现方案和技 术缨都是保密的,丽且这两个应用服务器对系统的要求很高。于是就出现了 开源项j b o s s 。作为第一个基于e j b 的应用服务器一开源的j b o s s 开始出现 在市场,从j b o s s 3 0 开始采用微内核豹组织方式,将e j b 作为整个软件的核 3 啥尔溱t 程大学颈+ 学傅论文 心其他a p i 都为e j b 服务。目前,j b o s s 的版本为s e a m 。它的性与旧版本相 比有了很大提升哆并且整合和强化j a v ae e 框架,支持w e b 2 0 ,成为流行 的应用服务器平台。j b o s s 中的安全框架也使用了j a a s 中的认证机制。 e j b 模型作为一个新兴的优秀技术,弓| 起了许多技术人员和研究者的研 究和探讨。目前e j b 的安全主要集中在认证和授权方面。认证方面几乎所有 的e j b 容器的认证机制都是基于j a a s 实现的。两授权则存在多种选择,一 般采用标准的声明性和编程性授权。 1 3 论文研究的主要内容 本文的研究志容包括,基于e j b 的w e b 安全策略研究。利篇j 2 e e 鸯身 的安全策略,结合e j b 安全方法所组成的安全策略,以j a a s 安全机制为基 础,深入选分析整个远程访闻的过程,采用鱼浏览器到w e b 服务器,再到 e j b 服务器,最后到达数据库服务器整个过程。提出一种基于e j b 对整个远 程访问安全的一种完整策略。 本文的主要研究目标分为几个部分,第一部分主要是从客户端到w e b 安 全的研究,第二部分主要是从w e b 服务器到e j b 服务器安全的研究,最后对 主要对w e b 服务器调用e j b 服务器安全进行研究和论证。基于国内外有关 j a v a 安全策略研究的成果,深入理解和分析各个部分所应该承担的责任和作 用,研究基于角色权限控制方法的安全策略;研究利用组件式开发实现的安 全方法和技术;研究一种即简单又有效的安全策略。 1 4 本文的组织结构 本文共分五章,结构安排如下: 第1 章为绪论。介绍课题的研究背景及意义;介绍w e b 安全的现状及国 内外相关的研究工作,e j b 安全所要考虑的问题,提出利用e j b 3 解决安全 的重要环节;总结分析w e b 安全的国内外研究现状。 第2 章怒基础理论研究部分。主要介绍了w e b 服务安全体系结构的相关 4 啥尔滨工程大学磺士学位论文 i i i i 篇黼i i i i i i i 黼麓i i i i i i i i 麓i i i i i i i 黼 理论研究。先介绍了h t r p s 的主要方法。 第3 章是对e j b 3 0 规范中的理论和相关技术进行详细的介绍,并与匿的 版本进行比较。 第4 章是核心部分,主要阐述了安全机制的设计。针对所要西临的阅题 所提出的解决方案。 第5 章是对第4 章的设计的实现。重点阐述实现的方法、原理。 5 哈尔滨工程大学硕士学位论文 第2 章w e b 层安全相关技术 本章对w e b 安全体系结构的相关理论进行研究和分析,阐述在w e b 安 全体系结构相关的主要技术。 2 1h t t p s 概述 h t t p s ( 全称:h y p e r t e x tt r a n s f e rp r o t o c o lo v e rs e c u r es o c k e tl a y e r ) 是一种建立在s s l 技术上的h t t p 9 1 ,是一种用于h t t p 流中加密通信的协 议。是以安全为目标的h t t p 通道,简单讲是h t t p 的安全版。当使用安全 套接字( s s l ) 的时候,整个消息会被加密。有许多版本的s s l 和与其相关 的协议,包括s s l v l 、s s l v 2 以及s s l v 3 9 1 强。s s l 的值非常简单,s s l 加 密两台主机之间的通信,极大减少了攻击者访问敏感通信并记录密码等信息 的能力。 s s l ( s c e n es o c k e tl a y e r ) 是n e t s c a p e 所研发,用以保障在i n t e r a c t 上 数据传输之安全,利用数据热密( e n c r y p t i o n ) 技术,可确保数据在网络上的 传输过程中不会被截取及窃听。目前一般通用之规格为4 0 b i t 之安全标准, 美国则已推出1 2 8b i t 之更高安全标准,但限制出境。只要3 。o 版本以上之i e 或n e t s c a p e 浏览器即可支持s s l 。当前版本为3 0 。它已被广泛地用于w e b 浏览器与服务器之间的身份认证和加密数据传输。 s s l 协议位于t c p i p 协议与各种应用层协议之闻,为数据遥讯提供安全 支持。s s l 协议可分为两层:s s l 记录协议( s s lr e c o r dp r o t o c 0 1 ) :它建立 在可靠的传输协议( 如t c p ) 之上,为高层协议提供数据封装、压缩、加密 等基本功能的支持。s s l 握手协议( s s lh a n d s h a k ep r o t o c 0 1 ) :它建立在s s l 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协 商加密算法、交换加密密钥等。 s s l 协议提供的服务主要有: ( 1 ) 认证用户和服务器,确傺数据发送到正确的客户机和服务器; 6 蹬尔滨工程大学硕士学寝论文 ( 2 ) 加密数据以防止数据中途被窃取; 3 ) 维护数据的完整性,确保数据在传输过程巾不被改变。 2 2s t r u t s 技术 s t r u t s 是一个技术框架,是a p a c h e 软件基金会旗下j a k a r t a 项目组的一部 分f 1 2 1 。由于s t r u t s 能充分满足应用开发的需求,篱单易翔,敏捷迅速,冒前, 有很多组织和个人参与s t r u t s 框架的开发,使得s t r u t s 保持高速成长。 s t r u t s 框架实质上就是在j s pm o d e l 2 麴基础上实现的一个m v c 框架玛】。 在s t r u t s 框架中,模型由实现业务逻辑的j a v a b e a n 或e j b 组件构成,控制器 由a c t i o n s e r v l e t 和a c t i o n 来实现,视图崮一组j s p 文件构成。这些j s p 文件 中没有业务逻辑,也没有模型信息,只有标签,这标签可以是标准的j s p 标 签或客户佬标签。s t r u t s 把s e r v l e t ,j s p 自定义标签和信息资( m e s s a g e r e s o u r c e s ) 整合到一个统一的框架中,开发人员利用其进行开发时不用再自 己编码实现全套m v c 模式【1 4 , 1 5 】,极大的节省了时间,所以说s t r u t s 是一个 非常不错的应用框架。通常,s t r u t s 框架使用j s p 技术来表现页面,使用s e r v l e t 来完成大量的事务处理,使用b e a n 来存数据1 6 1 。s e r v l e t 用来处理请求的事 务,充满一个控制者的角色,并负责向客户发送请求。它创建j s p 需要的b e a n 和对象,然后根据用户请求的彳亍为,决定将哪个j s p 页面发送给客户。表单 数据认证是w e b 开发中经常遇到的问题,利用s t r u t s 的静态数据认证方法可 以对用户在表单上输入的数据进行认证,包括数据类型是否正确,是否可为 空等,本文主要是对s t r u t s 中的认证方法进行研究。 ( 1 ) s t r u t s 的认证方式 a c t i o n f o r m 类中重载v a l i d a t e 方法s t r u t s 框架用户在应用程序中为每个 表单都创建了一个a c t i o n f o r mb e a n ,a c t i o n f o r m 类提供了一种表单数据的认 证方式阻1 8 1 ,提供两个方法: p u b l i ca c f i o n e r r o r sv a l i d a t e ( a c t i o n m a p p i nm a p p i n g , s e r v l e t r e q u e s tr e q u e s t ) 7 哈尔滨工程大学硕七学位论文 p u b l i ca c t i o n e r r o r sv a l i d a t e ( a c t i o n m a p p i nm a p p i n g ,h t t p s e r v l e t r e q u e s t r e q u e s o 在b e a n 里覆盖v a l i d a t e o 方法,并在配置文件里设置 元素的 v a l i d a t e 为t r u e 。在a c t i o n s e r v l e t 调用a c t i o n 类前,它会调用v a l i d a t e o ,如 果返回的a c t i o n e r r o r s 不是n u l l ,则a c f i n f o r m 会根据错误关键字将 a e f i o n e r r o r s 存储在请求属性列表中。如果返回的不是n u l l ,而且长度大于0 , 则根据错误关键字将实例存储在请求的属性列表中,然后a c t i o n s e r v l e t 将响 应转发到配置文件 元;素的i n p u t 属性所指向的目标。s t r u t s 提供了两 个类来处理错误:a c t i o n e r r o r s 和a c t i o n e r r o r ,它们都扩展 o r g a p a c h e s t r u t s a c t i o n 。a c t i o n e r r o r s 保存着a c t i o n e r r o r 对象的集合,其中每 一个代表了独立的错误信息。每个a c t i o n e r r o r 都包含了关键字,能够映射到 资源文件中存储的错误信息,而这个资源文件是在a c t i o n s e r v l e t 初始化参数 中指定的。这种认证方式的特点是表单数据在a c t i o a f o r m 认证未通过的时候 直接返回请求端,只有表单数据通过认证才可以被业务逻辑a c t i o n 处理。下 面是一个a c f i o n f o r m 类中重载v a l i d a t e 方法来进行表单认证的例子: p u b l i ca c t i o n e r r o r sv a l i d a t e ( a c t i o n m a p p i n gm a p p i n g ,h t t p s e r v l e t r e q u e s t r e q u e s t ) a c t i o n e r r o r se r r o r s = n e wa c f i o n e r r o r s 0 ; i f ( u s e m a m e = - - n u l l l l u s e m a m e 1 e n g t h o i n t e m e t 选项内容 证书) 。r o o t p 1 2 导入至受信任的根证书颁 发机构,c l i e n t p 1 2 导入至个人。 这样,证书的工作全部完成。授权用户会通过办法的证书安全的通过到 达w e b 服务器,但是还不能访问到相关资源,还需要通过后续的安全机制的 认可。 5 2 从w e b 到e j b 的安全管理 上一节中实现了从浏览器到达w e b 服务器的安全。接下来,基于上一章 设计的将e j b 反调用w e b 服务的方式。通过e j b 3 中注解方法来实现相应一 套的功能。构造w e b 服务的应用程序客户端步骤如下:首先要导入生成的服 务接口,使用 w e b s e r v i c e r e f 注解,通过指定w s d l 位置注入对应的服务 的引用;然后通过相应的调用方法,从注入的w e b 服务检索w e b 服务端口; 最后在得到端口后,就可以调用此端口上允许的操作。通过这种方式达到设 计阶段制定的避免使用x m l 配置文件的目的。下面阐述下是如何实现的。 使用 w e b s e r v i c e 注解用于b e a n 类或者接口类。在b e a n 类上使用此注 解,注解处理器或者e j b 容器将生成接口。如果已经有了b e a n 接口,那么 在接口上标记 w e b s e r v i c e 注解,在实现中b e a n 类代码如下所示: w e b s e r v i c e 3 8 哈尔滨工程大学硕士学位论文 p u b l i ci n t e r f a c em y w s e r v i c e p u b l i cl o n ga d d b i d ( s t r i n gb i d d e r l d ,l o n gi t e m l d ,d o u b l eb i d p r i c e ) ; ) s t a t e l e s s ( n a m e = “p l a c e b i d ”) p u b l i cc l a s sp l a c e b i d b e a ni m p l e m e n t sm y w s e r v i c e ,p l a c e b i d ) 上面代码中的接口上使用 w e b s e r v i c e 注解,那么w e b 服务器端点上的 所有公用方法都将暴露在w 曲服务中。使用 w e b s e r v i c e 注解的n a m e 元素 制定w e b 服务的名称。如果没有制定n a n l e 元素,那么就按照默认设置使用 b e a n 类或者接口的名称。这个名称和w s d l 的p o r t t y p e 中的n a m e 属性相同。 也可以使用t a r g e t n a m e s p a c e 元素指定w r e b 服务生成的w s d l 元素的目标命 名空间。如果没有指定此元素,e j b 容器就使用j a v a 包名称默认x m l 命名 空间;还可以使用s e r v i c e n a m e 元素指定服务名称。只有注解b e a n 类时。才 允许指定s e r v i c e n a m e 。使用s e r v i c e n a m e 指定的名称用于生成w s d l 的 s e r v i c e 元素的n a m e 属性。如果没有指定s e r v i c e n a m e 元素,服务器会使用默 认值生成它,默认值是b e a n 类名称加上s e r v i c e 。 指定 s o a p b i n d i n g 为w e b 服务样式,可以使用自定义函数配置服务 样式。默认样式值等。配置消息样式及其合法值。如果希望服务器和其它客 户端一起工作,就必须使用默认样式,s o a p 编码可能导致与w e b 服务器互 操作性相关的问题,可以指定p a r a m e t e r s t y l e 配置符合指定消息参数,设置 p a r a m e t e r s t y l e 的合法值和默认值。 使用 w e b m e t h o d 注解,在方法上应用a v a x j w s w e b m e t h o d 注解,把 此方法暴漏为w e b 服务的一部分。如果b e a n 实现类中有多个方法,并且使 用生成的端点接口,就必须在w e b 服务中暴露的方法上标记 w e b m e t h o d 注解。如果没有使用 w e b m e t h o d 注解,那么使用生成的接1 5 1 的b e a n 类中 的所有公用方法都讲暴露在w e b 服务中。 3 9 哈尔滨工程大学硕士学位论文 使用 w e b p a r a m 注解和 w e b r e s u l t 注解非常类似。它们一起使用,用 于控制生成的w s d l 中消息返回值的名称。定制返回值的x m l 命名空间, 这适用于文档样式的w e b 服务,其中返回值绑定到x m l 命名空间。 使用 o n e w a y 和 h a n d l e r c h a i n 注解, o n e w a y 注解用于不具有相应 输出的w e b 服务操作。 h a n d l e r c h a i n 注解用于定义在响应s o a p 消息时调 用的一组处理器。 通过上述的注解,可以使得b e a n 类自动的转化为e j bw e b 服务紧耦合, 并且这样一来x m l 部署描述符不再是必须项,降低x m l 被恶意修改的可能, 从而提高模块之间的安全性。 5 3j a a s 的扩展实现 j a a s 结构提供的定制实现认证和授权过程具有一定的弹性。在本文中, 通过扩展弘a s 使其成为一个更加具备动态化、灵活化和规模化的特性的框 架 3 2 , 3 3 】。使用这种扩展框架,可以轻松的生成自己登录和访问控制机制以支 持企业级别的安全需求,也能够支持新兴的安全标准,利用定制安全模型作 为适配器,然后热插拔它们进入j a a s 中。可以给企业应用提供一个可定制 的认证和授权过程。 ( 1 ) 实现a u t h l o g i n m o d u l e 类 a u t h l o g i n m o d u l e 类是通过定制的l o g i n m o d u l e 实现,l o g i n m o d u l e 类是 在j a a s 中是一个可插拔组件并且服务于两个目的在于鉴定认证用户,如果 认证成功,则用相关的负责人信息或者证书更新主题。在这里不直接使用 l o g i n m o d u l e ,解决方案是实现一个可定制的c a l l b a c k h a n d l e r 类,通过这个 类,将相关的安全信息传递给l o g i n m o d u l e 。以下示例给出了具体如何传递 的代码: s t r i n gu s e r n a m e 2 r e q u e s t g e t p a r a m e t e r ( u s e r ) ; s t r i n gp a s s w o r d 2 r e q u e s t g e t p a r a m e t e r ( p a s s w o r d ) ; l o g i n c o n t e x tc o n t e x t 2n e w l o g i n c o n t e x t ( m y s a m p l e ”, 4 0 哈尔滨工程大学硕士学位论文 n e w a u t h c a l l b a c k h a n d l e r ( u s e r n a m e ,p a s s w o r d ) ) ; 通过这种安全信息传递的方式,可以得到认证相关的信息, a u t h l o g i n m o d u l e 类,根据l o g i n m o d u l e 类的定制实现,会经由 l o g i n s o u r c e a d a p t e r f a c t o r y 实例化l o g i n s o u r c e a d a p t e r 并同时委派实际的认 证过程到资源适配器。适配器只不过是一个简单的类,其从一个具体的数据 适配器( 比如数据库或者l d a p ,或者一些别的系统) 领取用户信息。在提 交阶段,a u t h l o g i n m o d u l e 类从l o g i n s o u r c e a d a p t e r 类取回相关的信息并且 把他们和主题相关联。 ( 2 ) 实现l o g i n s o u r c e a d a p t e r 类 l o g i n s o u r c e a d a p t e r 类是一个认证目的的资源适配器的接口,它有4 个 需要实现的方法: v o i di n i t i a l i z e ( h a s h t a b l ep a r a m e t e r s ) :i n i t i a l i z e d 方法被调用来以相关的参 数初始化适配器。此方法在对象生成后立即被调用并且优先于任何对其他方 法的调用。 b o o l e a na u t h e n t i c a t e ( s t r i n gu s e m a m e ,c h a r p a s s w o r d ) :此认证方法被调用 来认证用户。 s t r i n g 】g e t g r o u p n a m e s ( s t r i n gu s e r n a m e ) :g e t g r o u p n a m e s 方法被调用来 在认证成功后得到相关的主要信息。 v o i dt e r m i n a t e ( ) :这个方法在l o g i n m o d u l e 类的l o g o u t 方法被执行后调 用,它给适配器做一些清理工作的机会。 ( 3 ) a u t h p o l i c y 类 在j a a s 架构下,安全策略被j a v a s e c u r e t y p o l i c y 类来处理,他会证明 赋给一个具体的代码源或者主体的多种权限。就像在上一段被讨论的, s u n s e c u r e t y p r o v i d e r p o l i c y f i l e 是其默认实现。p o l i c y f i l e 类使用平面文本文件 去证明在权限和代码源之间的对应关系,这点对于企业级应用可能不是太好。 一个集中的系统比如支持基于角色的安全性的关系数据库将会更好。很明显, 扩展j a a s 授权以处理不同的来源的不同的安全标记,因此需要写自己的策 4 1 哈尔滨工程大学硕士学位论文 略实现。 生成一个定制的策略实现的关键步骤为扩展j a v a s e c u r e t y p o l i c y 类。首 先,想要实现a u t h p o l i c y 类作为通用的p o l i c y 类,这可以处理默认的策略类 不需要用任何适配器介入。通过从p o l i c y f i l e 类,不需要去实现策略文件解 析和其他相关的代码。同时,当应用运行于一个安全管理器起作用的情况下, 一些权限,比如d o a s p r i v i l e g e da u t h p e r m i s s i o n 类和读入配置文件的 f i l e p e r m i s s i o n ( 为了载入配置文件) ,需要被赋权为了执行j a a s 。 当然,这些权限可以被存储在数据源里,但是把它们放入标准j a v a 安全 策略文件中可能更为有利。可是,对于正规开发应该实现一个适配器以应付 这些事情。在扩展认证时要遵循相同的设计模式。 ( 4 ) p e r m i s s s i o n a d a p t e r 类。 在权限类里,不同的权限保存于自己的p e r m i s s i o n c o l l e c t i o n 类实例,如 果想要创建一个定制的权限类,需要生成自己的p e r m i s s i o n c o l l e c t i o n 类类型, 否则不能保证用户权限对象将被参考确认。 p e r m i s s i o n a d a p t e r 类 p e r m i s s i o n a d a p t e r 类在j a a s 扩展组件中是认证过程可插拔模块的接口。 它从一个具体的数据源评估策略并且分发一个包含一套已赋予权限的 p e r m i s s i o n c o l l e c t i o n 类。p e r m i s s i o n a d a p t e r 类接口有下面的方法: v o i di n i t i a l i z e ( h a s h t a b l ei n i t p a r a m s ) i n i t i a l i z e ( ) 方法被调用以相关的参数 初始化适配器,此方法会被立即调用并且优先于任何其它的方法调用。同时, 在p o l i c y 类的r e f r e s h 方法被执行后它也会被调用。 p e r m i s s i o n c o l l e c t i o ng e t p e r m i s s i o n s ( p r o t e c t i o n d o m a i nd o m a i n ) :本方法只 要某种主体权限被请求就会被调用。 首先,在i n i t i a l i z e ( ) 方法中,从数据中取得所有角色的权限信息,并将这 些信息组装入集合类中,然后在g e t p e r m i s s i o n s 方法中,收集到相关主体有 关的权限。通过调用p r o t e c t e d d o m a i n 类的g e t p r i n c i p a l s 方法可以得到相关的 权限。 4 2 哈尔滨工程大学硕士学位论文 ( 5 ) j a a s u t i l 类 对于j a a s 扩展组件j a a s u t i l 类是主要的纽带,并且它有一个构造函数 取得用户名和密码。有两个关键的方法: b o o l e a na u t h e n t i c a t e 0 b o o l e a nc h e c k p e r m i s s i o n ( s u b j e c ts u b j e c t ,f i n a lp e r m i s s i o np e r m ) j a a s u t i l 类实际延迟了l o g i n c o n t e x t 类的登陆请求和s e c u r i t y m a n a g e r 类 的权限检查步骤。 定制自己的l o g i n m o d u l e ,p o l i c y 和其他相关模块实现。这些模块可以 委托相关的数据请求给合适的适配器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论