2.1.3 RBAC模型的角色
RBAC模型引入了“角色”的概念。所谓“角色”就是一个或一群用户在系统中可执行的操作的集合,它是一个用户的集合,又是一个授权许可的集合。通过将角色指派给用户,为角色赋予权限的方式,使用户和权限通过角色间接相联系。
在RBAC模型中,工作职位被描述为“角色”,职位所具有的权利称为许可权。角色是RBAC模型中的核心概念,围绕这一概念实现了访问控制策略的形式化。特殊的用户集合和许可权的集合通过角色这一媒介在某个特定的时间内联系在一起。而角色确实相对稳定的,因为任何组织的分工、活动或功能一般是很少经常改变的。
可以有不同的动机去构造一个角色,角色可以表示完成特殊任务的资格。通过多个用户的轮转,角色可以映射特殊责任的分配。RBAC的模式及其实现可以方便的适应这种角色概念的多种表现。
在实际的计算机信息系统中,角色由系统管理员定义,角色的增加与删除、角色权利的增加与减少等uanli工作都是由系统管理员完成的。根据RBAC的要求,用户被分配为某个特定角色后,就被赋予了该角色所拥有的权利和责任,这种授权方式是强制性的,用户只能被动的接受,不能自主的决定为角色增加或减少权力,也不能把自己角色的权利转首给用户,显然,这是一种非自主型的访问控制模式。
2.2 Struts2框架
Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。
2.1.1 MVC模式
Servlet/JSP技术虽然在很长时间内被广泛应用,但人们逐渐发现Servlet/JSP技术存在着很多的弊端。如JSP页面将静态的HTML代码、JavaScript、CSS和动态的JSTL、Java代码混在一起,这样非常不利于后期的程序维护。为了解决这个问题,有人提出了讲页面和服务端代码分离,这就是MVC模式的基本思想之一[7]
A.JSP模型1和JSP模型2:
Sun在引入JSP/Servlet技术时,制定了两种开发模型来建立基于JSP的Web应用程序,这就是众所周知的Model 1和Model 2。
JSP Model 1Model 1一般由3部分组成,这3部分是客户端浏览器、服务端程序(JSP/Servlet)和数据库。Model 1在JSP/Servlet中处理所有的服务端工作,其中包括接受请求、商业逻辑、表现层逻辑和产生响应。Model 1的架构如图2.2所示。
虽然这种模型在概念和使用上非常简单,但将商业逻辑和表现层逻辑以及其他的处理代码都写在JSP/Servlet中将大大降低程序的灵活性和可维护性。
JSP Model 2
Model 2是现在最流行的开发模式,这个模型是基于MVC模式的。MVC是模型(Model)-视图(View)-控制器(Controller)的简称。在MVC模式中,以控制器为中心。在一般情况下,用Servlet来充当控制器,负责接受视图,并向视图发送响应消息。同时也和模型进行交互,来获得数据库的消息,或者向数据库中写入信息。Model 2的架构如图2.3所示。
MVC模式将表现层(视图)、商业逻辑层(控制器)和数据层(模型)分开处理。因此,很容易替换其中的任何一部分,如需要不同的表现层接口时,只需要修改视图即可,其他两层并不需要进行修改,这样将会达到最大限度的代码重用。
B.MVC模式概述:
MVC模式将一个应用分成3个部分:Model、View和Controller,这3个部分应尽可能减少耦合,从而可提高应用程序的可扩展性和可维护性。