收藏 分销(赏)

RBAC模型设计及其应用的实现论文.doc

上传人:仙人****88 文档编号:9256719 上传时间:2025-03-18 格式:DOC 页数:44 大小:1.34MB 下载积分:10 金币
下载 相关 举报
RBAC模型设计及其应用的实现论文.doc_第1页
第1页 / 共44页
RBAC模型设计及其应用的实现论文.doc_第2页
第2页 / 共44页


点击查看更多>>
资源描述
目录 摘要 3 Abstract 4 第一章 绪论 5 1.1 研究背景 5 1.2访问控制技术 5 1.3 小结 6 第二章JAVA和XML简介 6 2.1 JAVA语言的现状 6 2.2 JAVA语言的特点 7 2.3 JAVA运行环境与程序编译 8 2.4 XML的产生 9 2.5 XML的重要特性 10 2.6 小结 10 第三章 Servlet简介 10 3.1 Servlet的特点 10 3.2 Servlet的一些基本知识 12 3.2.1 Servlet的基本结构 12 3.2.2 编译、安装和调用Servlet 13 3.2.3 生成HTTP的Servlet 13 3.2.4 将Servlet打包 14 3.3 小结 15 第四章 基于角色访问控制模型WARBAC 15 4.1 WARBAC模型的理论基础 15 4.2 WARBAC模型的构建 16 4.3 基于目录管理的LDAP服务 19 4.4 小结 20 第五章 基于WARBAC模型的应用实现 20 5.1WARBAC模型的策略和关系图 21 5.1.1WARBAC的策略 21 5.1.2 UJSFWM系统中的相关关系图 26 5.2WARBAC管理功能的实现及其相关类 29 5.2.1WARBAC管理功能的实现 29 5.2.2相关类的实现: 34 5.3UJSFWM文件管理系统的实现及其相关类 36 5.3.1UJSFWM文件管理系统的实现: 36 5.3.2相关类的实现: 37 5.4小结 40 第六章 结束语 41 致谢 42 参考文献 43 摘要 随着Internet的广泛应用,基于角色的访问控制(Role_Based Access Control,简称RBAC)已成为当前计算机科学的一个十分活跃的研究领域,RBAC技术正成为安全可靠应用系统中的重要组成部分,构建完善的RBAC模型和设计合理的基于RBAC模型的应用框架具有重要的意义。 本文先大概介绍JAVA和Servlet,这是完成该作业的基础,接下来是基于角色访问控制的初步知识,然后对WARBAC模型的应用框架,并对其设计技术进行了详细的探讨,主要内容包括:基于WARBAC模型的应用框架体系结构,WARBAC访问控制策略设计、访问控制执行功能和访问控制决策功能、WARBAC管理功能设计、基于目录管理的LDAP服务等。最后介绍了根据基于WARBAC模型的应用框架进行设计实现的文件资源管理系统——UJSFWM,文中对UJSFWM系统的功能做了详细介绍。 关键词:基于角色访问控制,角色管理,目录服务 Abstract With the wide application of the Internet, currently, Role_Based Access Control has been a quite active research field of the Computer Science, and the techniques of RBAC are becoming the important part of a secure and credible application system. It’s of high significance that building a perfect model of Role_Based Access Control and designing a reasonable application framework based on an RBAC Model. This paper first generally introduce JAVA and Servlet,this is the base to complete this work,next is the principal knowledge of Role_Based Access Control,then the model named WARBAC is put forward . Next, the model named WARBAC is put forward. Mainly including the application system framework based upon WARBAC model, the design concerning tactic, performance function, decision-making function, management of access control of WARBAC and the service based on LDAP, etc. At the end of the paper, a realized file management system--UJSFWM, originating from the application framework of WARBAC model, is illustrated .The function of the UJSFWM system and the realization of the concerning technology are explained at length in the paper. keywords:Role_Based Access Control, the Management of Role, Directory Service。 第一章 绪论 1.1 研究背景 以计算机和通信网络为基础的各种信息系统,给人们生活、工作带来了巨大变革。由于计算机的普及,无论是军事、外交、工业、金融还是商业领域都实现了自动化。大型信息系统将众多的计算机和智能化设备连在一个通信网络中,共享丰富的数据库信息和计算机资源,存储大量的数据文件,完成异地间的数据交换和通信。信息系统的应用,加速了社会自动化的进程,减轻了日常繁杂的重复劳动,同时也提高了生产率,创造了经济效益。 然而信息系统越是重要,越容易受到攻击(如:窃取、冒充、伪造、篡改等),攻击者从中获得非法的利益。因此,信息系统的安全保密成为迫切需要解决的问题,人们逐渐把关注的焦点投入到怎样保护信息的安全上来。 1.2访问控制技术 访问控制技术涉及的领域较广,根据控制策略的不同,访问控制技术可以划分为自主访问控制、强制访问控制和基于角色访问控制三种策略。   1.2.1自主访问控制 自主访问控制是针对访问资源的用户或者应用设置访问控制权限,这种技术的安全性最低,但灵活性很高。在很多操作系统和数据库系统中通常采用自主访问控制,来规定访问资源的用户或应用的权限。不过这种访问控制有些不方便,就是容易造成授权混乱,不易管理,因为对某个资源有访问权限的用户可以把自己的权限任意分配给其他用户;使用这种访问控制还可能由于某个用户中了木马,资源就被别人任意访问。 1.2.2强制访问控制 强制访问控制在自主访问控制的基础上,增加了对网络资源的属性划分,规定不同属性下的访问权限。这种访问控制技术引入了安全管理员机制,增加了安全保护层,可防止用户无意或有意使用自主访问的权利。强制访问控制的安全性比自主访问控制的安全性有了提高,但是使用这种访问控制方法却又使得灵活性大大降低。 1.2.3基于角色访问控制    基于角色访问控制与访问者的身份认证密切相关,通过确定该合法访问者的身份来确定访问者在系统中对哪类信息有什么样的访问权限。一个访问者可以充当多个角色,一个角色也可以由多个访问者担任。基于角色访问控制具有以下优点:便于授权管理、便于赋予最小特权、便于根据工作需要分级、便于任务分担、便于文件分级管理、便于大规模实现。基于角色访问是一种有效而灵活的安全措施,目前对这一技术的研究还在深入进行中。 基于角色访问控制的思想可以简单表述为如下图所示:用户 角色 权限 让权限和角色相映射,在系统中根据应用的需要创建相应的角色,并且将用户分配到相应的角色集合中,于是利用角色作为中间量将用户与权限联系起来,实现了用户与访问权限的逻辑分离,而不是像传统访问控制技术那样将访问权限直接分配给用户。在RBAC中,权限和角色是相关联的,用户通过获得适当的角色而得到相应的权限,这在很大程度上简化了权限管理。在组织内,用户根据他的职务和承担的责任被指派角色。 1.3 小结 本章介绍了基于角色访问控制的研究背景,还把现有的三种访问控制模式大概讲了一下。 第二章JAVA和XML简介 2.1 JAVA语言的现状 JAVA是Sun公司推出的新的一代面向对象的程序设计语言,特别适合于Internet应用程序开发,他的平台无关性直接威胁到Wintel的垄断地位。一时间,“连Internet,用JAVA编程”,成为技术人员的一种时尚。虽然新闻界的报道称其言过其实,但JAVA作为软件开发的一种革命性的技术,起地位已经确立。 2.2 JAVA语言的特点 JAVA是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、多线程的、语言。 一、简单 JAVA最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。JAVA的风格类似于C++,但是屏弃了C++中容易引发程序错误的地方,如指针和内存管理,JAVA也提供了丰富的类库。 二、面向对象 面向对象可以说是最重要的特性。JAVA语言的设计完全是面向对象的,它支持静态和动态风格的代码继承和重用,JAVA的特性尤其适用于分布式计算环境。 三.分布式 JAVA包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,JAVA应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供动态内容无疑是一项非常宏伟的任务,但JAVA的语法特性却使我们很容易地实现这项目标。 四、健壮 JAVA致力于检查程序在编译和运行时的错误,类型检查也帮助检查出许多开发早期出现的错误。JAVA自己控制内存,实现了真数组,不支持指针,这些都减少了错误的发生。 五、结构中立 为了建立JAVA作为网络的一个整体,JAVA将它的程序编译成一种结构中立的中间文件格式,只要有JAVA运行系统的机器都能执行这种中间代码。 六、安全 JAVA的安全性可以从两方面得到保证。一方面,本身减少了错误;另一方面,当用JAVA来创建浏览器时,语言功能和浏览器提供的功能结合起来,使它更安全。 七、可移植性 同体系结构无关的特性使得JAVA应用程序可以在配备了JAVA解释器和运行环境的任何计算机体系上运行,这成为JAVA应用软件便于移植的良好基础,但仅仅如此还不够。但是基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。通过定义独立于平台的基本数据类型及其运算,JAVA数据得以在任何硬件平台上保持一致。 八、解释的 JAVA解释器(运行系统)能直接运行代码指令。链接程序通常比编译程序所需的资源少,所以程序员可以在创建程序上花上更多的时间。 九、多线程 JAVA提供的多线程功能使得在一个程序里可同时执行多个小任务。线程----有时也称小进程----是一个大进程里分出来的小的独立的进程。多线程带来的更大好处是更好的交互性能和实时控制性能。[4] 2.3 JAVA运行环境与程序编译 这是JAVA程序运行的前提,JAVA程序的运行都是在一定的计算机环境中的,必须要有编译程序对JAVA源代码进行编译,之后才能运行。 一、 JAVA的运行环境 JAVA不仅提供了一个丰富的语言和运行环境,而且还提供了一个免费的JAVA开发工具集(JAVA Developers Kits,简称JDK)。编程人员和最终用户可以利用这个工具来开发 JAVA程序或调用JAVA内容。JDK包括以下工具:javac JAVA语言编译器,输出结果为JAVA字节码。Java JAVA字节码解释器,javap Disassembeler:字节码分解程序,本程序返回JAVA程序的成员变量及方法等信息。Javah C代码处理工具,用于从JAVA类调用C++代码JAVA Applet Viewer小应用程序浏览工具,用于测试并运行JAVA小应用程序。 JAVA开发环境还包括JAVA类库(包括I/O类库、用户界面类库、网络类库等)和HotJava WWW浏览器。其中HotJava浏览器提供了在WWW环境下运行JAVA代码的一个运行系统,而且还为WWW开发人员提供了一个JAVA开发框架。JAVA解释器是面向JAVA程序的一个独立运行系统,它可以一种稳定、高性能方式运行独立于平台的JAVA字节码,JAVA编译器则用于生成这种字节码。 二、JAVA程序的编译 JAVA程序的编译程序是javac.exe。javac命令将错就错JAVA程序编译成字节码,然后你可用JAVA解释器java命令来解释执行这种字节码。JAVA程序源码必须放在后缀为.java的文件里。JAVA程序里的每一个类,javac都将生成与类名相同名称但后缀为.class文件。编译器把.class文件放在.java文件的同一个目录里,除非你使用-d选项。当你引用到某个自己定义的类时,必须指明它们存放的目录,这就需要利用环境变量参数CLASSPATH。环境变量CLASSPATH是由一组被分号隔开的路径名组成。如果传递给javac编译器的源文件里引用到的类定义在本文件和传递的其它文件中找不到,则编译器会按CLASSPATH定义的路径来搜索。例如: CLASSPATH=.;C:\java\classes则编译器先搜索当前目录,如果没搜索到,则继续搜索C:\java\classes目录。系统总是将系统类的目录缺省地加在CLASSPATH后面,除非用-classpath选项来编译。Javac_g是一个用于调试的未优化的编译器,功能与用法和javac一样。Javac的用法如下: javac [-g][-O][-debug][-depend][-nowarn][-verbose][-classpath path][-nowrite][-d dir] file.java... [3] 三、 JAVA程序的执行 java-java语言解释器java命令解释java字节码。 语法:java[options]classname<args>java_g[options]classname<args> 描述:java命令由java编译器javac输出的JAVA字节码。 Classname参数是要执行的类名称。注意任意在类名称后的参数都将传递给要执行类的main函数。 Java执行完main函数后推出,除非main函数创建了一个或多个线程。如果main函数创建了其他线程,java总是等到最后一个线程推出才推出。 throw语句用来明确地抛出一个“异常”。首先你必须得到一个Throwable的实例的控制柄,通过参数传到catch子句,或者用new操作符来创建一个。下面是throw语句的通常形式。 2.4 XML的产生 可扩展语言标记(Extensible Markup Language,简称XML)是SGML的一个优化子集,SGML是ISO(国际标准化组织)在1986年推出的一个用来创建标记语言的语言标准。SGML为出版业提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。SGML的确在许多大型出版系统中很有用,但是它的复杂性使其难以直接应用到Internet上,而HTML是专为Web上发布超文本而设计的标记语言,它是用SGML定义标记语言的一个典型例子,但是HTML本质上主要关注Web浏览器如何在页面上安排文本、图象和按钮等,过多地考虑外观使其缺乏对结构化数据的表示能力。另外,HTML中有限的标记不能满足很多Web应用的需要,如基于Web的大型出版系统和新一代的电子商务,而为各种应用需要不断地望HTML中增加标记显然不是最终的解决方法,究其原因是HTML缺乏可扩展性。解决方案应该是简化SGML使之能应用到Web上,在此背景下,作为Web上使用的SGML的一个优化子集,XML应运而生。 同SGML类似,XML是一种元标记语言,使用者可按需创建新的标记,XML的可扩展性就在于此。带标记的元素是XML文档的构造块,这种元素可以有若干个属性,并可以包含零个或多个子元素。这些子元素可以是文本数据,也可以是带标记的元素。 2.5 XML的重要特性 SML具有许多重要特性。首先是可扩展性。正如JAVA让使用者声明他们自己的类,XML让使用者创建和使用他们自己的标记而不是HTML的有限词汇表。可扩展性是至关重要的,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定的行业一起来定义该领域的特殊的标记语言,作为该领域信息共享与数据交换的基础。 其次是灵活性。HTML很难发展,因为它是格式、超文本和图形用户界面语义的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。在XML中可以使用样式表,如XSL(Extensible Stylesheet Langusge,可扩展样式表语言)和CSS2(Cascading Style Sheets Level2,层叠样式表第二进阶),将数据呈现到浏览器中。另外,XML文档之间的超链接功能由独立的XLink(Extensible Linking Language,可扩展链接语言)来支持,所有这些方面都可以互相独立地改进并进展。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。 再者是自描述性,XML文档通常包含一个文档类型声明,因而文档是自描述的:不仅人能读懂XML文档,计算机也能处理,XML文档中的数据可以被任何能够对XML数据进行解析的应用所提取、分析、处理,并以所需格式显示。XML表示数据的方式真正做到了独立于应用系统,并且这些数据能重用,所以XML适合开放的信息管理。因为它的自描述性,文档里的数据可以由XML使能的应用来创建、查询和更新,跟处理传统的关系型数据库、面向对象数据库里的数据类似,XML甚至还能用来表示那些以前不被看作文档但是对传统的数据库来说又过于复杂而难以处理的数据。所以,XML文档被看作是文档的数据库化和数据的文档化。 除上述特性以外,XML具有简明性。它只有约SGML20%的复杂性,但具有SGML功能的约80%。同完整的SGML相比,XML简单得多,易学、易用并且易实现。另外,XML的诞生也吸收了人们多年来在Web上使用HTML的经验。值得注意的是,XML采用Unicode 字符编码系统,从而支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用,XML使能的软件能处理所有这些语言的任何组合。所有这一切将使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台,它将为网络计算注入新的活力,并为信息技术带来新的机遇。[2] 2.6 小结 本章讲解了JAVA的特点;JAVA的环境和编译程序;XML的产生和XML的重要特性。 第三章 Servlet简介 3.1 Servlet的特点 Servlet是Common Gateway Interface(通用网关接口,CGI)编程在JAVA技术上的体现。他们是运行在Web服务器上的程序,作为来自Web浏览器或其他HTTP客户端的请求与HTTP服务器上的数据库或应用程序之间的中间层。它们的任务是:(1)读取用户发送的所有数据 (2)查询HTTP请求中包含的任何其他请求信息 (3)产生结果 (4)在文档内设置结果的格式 (5)设置合适的HTTP响应参数 (6)将文档回送给客户端 一、有效性 与传统的CGI方式相比,使用Servlet方式有三个方面是有效的:1.在CGI中,每一项HTTP请求都启动新进程,而使用Servlet方式只是使用JAVA虚拟机开启JAVA线程,这样节省了系统资源;2.有N项请求指向同一个CGI程序,则该CGI程序代码会被载入内存N次,但在使用Servlet时,可以存在N个线程,只使用Dervlet的一个副本。3.当CGI程序完成请求的处理工作时,就会终止程序,这样就难以缓存计算结果、保持数据库连接开放,但在Servlet方式中,完成响应后,Servlet仍然保留在内存中,因此可以直接在请求之间存储任意复杂的数据。 二、 方便 Servlet包含扩展基础结构,能够自动对HTML表单数据进行分析和解码、读取和设置HTTP头、处理Cookie、跟踪会话以及许多其他类似的高级功能。 三、强大 Servlet可以支持几种常规的CGI难以或无法实现的功能。例如:Servlet可以直接与Web服务器对话;与Web服务器的通信更易于将相对URL转换成具体的路径名;多个Servlet之间还能共享数据,更易于实现数据库连接共享和类似资源共享优化操作;Servlet还可以保留不同请求的信息,从而简化了类似会话跟踪和缓存早期计算结果的一些技术。 四、可移植 Servlet是使用JAVA编程语言并遵循标准的API编写的,所以它可以几乎不用修改而在不同的平台上使用 五、安全性 传统的CGI程序容易受到进攻的主要原因在于,通用的操作系统的外壳经常执行这些程序。因此CGI编程人员必须剔除外壳将进行特殊处理的字符。Servlet就不会遇到这些问题。即使Servlet执行了远程系统调用来调用本地操作系统上的程序,它业不会使用外壳执行次操作。当然,数组边界检查和其他内存保护特性仍然是JAVA编程语言的重要部分。 六、便宜 有许多免费可用的或者极为低廉的Web服务器适合于“个人”或小型Web站点使用。除了Apache可免费使用之外,多数商业性质的Web服务器都比较昂贵,但一旦使用有了某种Web服务器,不管其成本如何,添加Servlet支持几乎无需花费额外成本。与其他许多支持CGI的服务器相比,后者要购买专用软件包,需要投入巨大的启动资金。 3.2 Servlet的一些基本知识 3.2.1 Servlet的基本结构 对于不熟悉HTTP的人来说,GET请求就是浏览器请求Web页面的常用类型。当用户在地址行中键入URL、单击Web页面的链接或者提交没有指定METHOD的HTML表单时,浏览器就会生成这种请求。Servlet还能非常容易地处理POST请求,当用户提交指定了METHOD=“POST”的HTML表单时,就会生成POST请求。 要成为Servlet,类应该扩展HttpServlet,并根据是以GET还是以POST方式发送数据来覆盖doGET或doPOST。如果希望同一个Servlet既能处理GET,又能处理POST,并且对两种方法都使用同一种操作,只需让doGET调用doPOST即可。 如下面的程序 : import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletTemplate extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ PrintWriter out=response.getWriter(); } } 在这里,doGet和doPost都接受两个参数:HttpServletRequest和HttpServletResponse。HttpServletRequest具有一些方法,可以确定诸如表单数据、HTTP请求头和客户端主机名传入的信息。HttpServletResponse允许你指定诸如HTTP状态码和响应头的出站信息,更重要的是,允许你获得PrintWriter,用来将文档内容回送给客户端。 因为doGet和doPost会发生两种异常,所以必须在声明中包括他们。最后,必须导入java.io(用于PrintWriter等)、javax.servlet(用于HttpServlet等)和javax.servlet.http(用于HttpServletRequest和HttpServletResponse)中的类。 3.2.2 编译、安装和调用Servlet 在编译和安装Servlet时,第一件事是确保正确地配置服务器,并且CLASSPATH指向包含Servlet类的JAR文件。下一步就是决定存储这些Servlet类的位置,该位置因服务器的不同而不同,但也有一些比较常用的习惯。多数服务器都使用三种不同的位置存储Servlet类: 1. 用于经常更改的Servlet类的目录 在Servlet类文件发生改变时,就会自动重新加载该目录中的Servlet,因此在开发过程中应该使用此目录。 2. 用于不经常更改的Servlet类的目录 存储在该位置的Servlet的效率稍微高一些,因为服务器并不必总是检查它们的修改日期,但若更改了该目录中的类文件则必须重新启动服务器。该选项用于大型站点的“成品”Servlet. 3. 用于JAR文件中不经常更改的Servlet的目录 使用上述第(2)个选项时,类文件直接存储在classes目录中,或者存储在与Package名称对应的子目录中。在使用此选项时,类文件被打包成JAR文件,然后将该文件存储在指定的目录中。每当更改该目录中的文件时,就必须重新启动服务器。 在调用Servlet时,由于使用不同的服务器,Servlet类可以被存储在许多不同的位置,对于不同的服务器,没有任何固定的标准。但在调用Servlet时,经常使用一种规范,即使用形式为http://host/servlet/ServletName的URL。URL是指向单数的servlet. 3.2.3 生成HTTP的Servlet 多数Servlet可生成HTML,而不像前一示例所示只生成纯文本。要构建HTML,需要两个额外的步骤: (1) 告诉浏览器正在回送HTML (2) 修改println语句,构建合法的Web页面。通过设置HTTP的Content-Type响应头可以完成第一步操作。通常可以用HttpServletResponse的setHeader方法设置头,但设置内容类型是一项十分常见的任务,因此还有一个特殊的setContentType方法专门用来完成此操作。 尽管HTML是Servlet创建的最常用的文档类型,但是它也会创建其他文档类型。在通过PrintWriter真正返回任何内容之前,需要设置响应头。这是因为HTTP响应按照顺序由状态行、一个或多个头、一个空行和真实文档构成。头可以以任何次序出现,Servlet将缓存这些头,并一次性发送所有头,因此甚至在完成头设置之后设置状态码也是合法的。但Servlet不一定缓存文档本身,因为用户可能希望查看长页面的部分结果。[1] 编写生成HTML文档的Servlet的第二步是使println语句输出HTML,而不是纯文本。 3.2.4 将Servlet打包 在成品环境中,多个程序员可能正在为同一台服务器开发Servlet。因此,将所有Servlet放置在顶层Servlet目录将产生大量难以管理的目录,当两个开发人员无意中选择相同的Servlet名称时还会造成名称冲突。包是解决这一问题的常用方法。使用包将改变Servlet的创建方式、编译方式和调用方式。 一、 创建包中的Servlet 将Servlet放置在Package中需要两个步骤: (1) 将文件移动到与要使用的Package名称相同的子目录中。 (2) 在类文件中插入一条package语句。 例如,要将类文件放置在somePackage包中,文件的首行应该是: package somePackage; [6] 二、 编译包中的Servlet 编译包中的类可以有两种主要方式。第一种方式是将Package子目录直接放在Web服务器预期存储Servlet的目录中,然后设置CLASSPATH变量,指向真正包含您的Servlet的目录的上一级目录,也就是Web服务器所使用的Servlet主目录。然后可以在包专用的子目录中以常规方式进行编译。 例如,如果Servlet的基础目录为C:\JavaWebServer2.0\servlets,包名称(因此也是子目录名)为coreservlets,并且正在运行Windows,则可以执行: DOS> set CLASSPATH=C:\JavaWebServer2.0\servlets;%CLASSPATH% DOS> cd C:\JavaWebServer2.0\servlets\coreservlets DOS> javac HelloWord.java 编译包中的类的第二种方式是将源代码保存在不同与类文件的位置。首先,将Package目录放在方便发现的任何位置。CLASSPATH引用该位置。其次,使用javac的-d选项在Web服务器预期的目录中安装这些类文件。如下例: DOS> cd C:\MYServlets\coreservlets DOS> set CLASSPATH=C:\MYServlets;%CLASSPATH% DOS> javac –d c:\tomcat\webpages\WEB-INF\classes HelloWWW2.java 三、 调用Package中的Servlet 要调用Package中的Servlet,可以使用以下URL: http://host/servlet/packageName. ServletName 代替以下URL: http://host/servlet/ServletName 3.3 小结 本章只是介绍了关于Servlet的最简单的知识,比如Servlet的特点,安装和编译等。 第四章 基于角色访问控制模型WARBAC 4.1 WARBAC模型的理论基础 WARBAC模型是在SARBAC模型的基础上,引入了ARBAC02模型中的一些思想,对SARBAC模型做的改进。也就是说WARBAC模型的理论基础包含两部分内容:一个是ARBAC02模型,另一个是SARBAC模型。ARBAC模型和SARBAC模型都是已经成熟的模型,但是他们都还存在着一些缺陷,比如SARBAC模型,它在角色层次管理方面具有两个优点:其一是角色层次管理实现上简单;其二是角色层次关系的动态变化实时性,但该模型也存在一定的问题:1、角色分配麻烦。2、用户—角色分配关系冗余。3、有些职责分离不能实现。4、存在不合理的权限流问题。在ARBAC02模型中解决了以下问题:而对于ARBAC02模型来讲解决了如下的问题:1、角色分配麻烦问题。2、用户-角色分配关系冗余问题。3、职责分离的问题。但ARBAC02模型也存在着一定的问题:1、角色层次管理实现复杂。2、不具有角色层次关系动态变化的灵活性。因此,在SARBAC模型的基础上,利用ARBAC022模型中的一些思想,我们对SARBAC模型做了进一步的改进,于是就生成了WARBAC模型。[4] 4.2 WARBAC模型的构建 WARBAC模型的角色层次管理继续沿用了SARBAC模型中的RHA4[5]子模型,用户-角色分配和权限-角色分配管理是利用了ARBAC02模型中相对应部分的思想进行了改进。下面就给出WARBAC模型的详细内容。 一、 WARBAC模型中角色层次管理 在WARBAC模型中,角色层次管理沿用了SARBAC模型中的RHA4子模型。对RHA4模型,我们在文章的前面已做了详细的介绍。这里,需要再强调一下的是RHA4模型中的管理范围这个概念的重要性。因为管理范围这个概念也是WARBAC模型中用户-角色分配和权限-角色分配管理部分的基础。 二、 WARBAC组织结构 组织结构的概念是从ARBAC02模型中引入的,它是一个树型结构并且包含了继承的概念。同样WARBAC模型中的组织结构是也是由许多组织单元构成的,每个组织单元中也都包含着相关的人员或者是和工作职责相关的权限,用户库和权限库的就存放在相应的组织单元中。在WARBAC模型中,对用户库和权限库也分别使用不同的组织单元。这样用户-角色管理就可以通过给管理员分配适当的用户库和角色范围来分散管理;权限-角色管理也就可以通过给管理员分配适当的权限库和角色范围来分散管理。 WARBAC模型图。 下面再简要描述一下独立于角色或角色层次的用户和权限库和一个自底向上的权限-角色分配管理模式。 (1) 用户库和权限库 在WARBAC模型中用户库组织结构的定义同ARBAC02模型中定义的一样,用OS-U代表用户库的组织结构。它包含了事先分配好的用户。 在WARBAC模型中权限库组织结构的定义同ARBAC02模型中定义的一样,用OS-P代表权限库的组织结构。它包括了事先分配好的权限。需要再强调的一下的是:在OS-P中权限被向下继承这一点是很重要的。 用户库和权限库都已给出后,就可以重新定义WARBAC模型中用户-角色和权限-角色分配关系及其相关约束了。 (2) 从底向上的途径对权限-角色的分配 在WARBAC模型中也采用了ARBAC02模型中从底向上的方法对角色进行权限的分配。也就是一般的权限分配给角色层次中较低层的角色,层次较高的角色可以继承这些权限,而特殊的权限分配给层次较高的角色。这样,层次较高的角色可以通过继承来获得相应的权限。 三、 WARBAC约束 在WARBAC模型中,我们新定义了三类约束,分别是角色约束,用户库约束和权限库约束。下面对这三类约束我们给出具体的定义: (1) 角色约束。 定义3.2.3.1 设C={r1,…,rk}是R的一个子集,∧﹁C表示﹁r1∧…﹁∧rk。那么对于CÍR,∧﹁C便可以构成一个WARBAC角色约束。 如果对任意的rÎ↓R(u),rC,那么则说用户u满足WARBAC角色约束∧﹁C。如果对任意的rÎ↓R(p),rC,那么则说权限p满足WARBAC角色约束∧﹁C。 (2) 用户库约束 定义3.2.3.2 设@c是OS-U的一个组织单元。那么对于@c便可以构成一个WARBAC用户库约束。 如果(u,@c)ÎUUA,那么则说用户u满足WARBAC用户库约束@c。 (注:OS-U:代表用户库组织结构,UUA:用户-组织单元(OS-U中的组织单元)分配。为区分角色和组织单元,在组织单元的名字前加@。) (3) 权限库约束 定义3.2.3.3 设@c是OS-P的一个组织单元。那么@c便可以构成一个WARBAC权限库约束。 如果(p,@c)ÎPPA,那么则说权限p满足WARBAC权限库约束@c。 (注:OS-P:代表权限库组织结构,PPA:权限-组织单元(OS-P中的组织单元)分配。为区分角色和组织单元,在组织单元的名字前加@。) 四、 WARBAC关系 WARBAC模型除了含有RHA4中admin-authority关系外,还重新定义了关系ua-constraintsÍR×OS-U×A和pa-constraintsÍR×OS-P×A′。其中AÍR,A′ÍR。ua-constraints和pa-constraints的目的类似于ARBAC97中的c
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服