亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STRUTS的權(quán)限管理系統(tǒng)研究與實現(xiàn)

        2008-12-31 00:00:00姜雙林
        電腦知識與技術(shù) 2008年12期

        摘要:本文介紹了Struts的一些特點,闡述了三種常用的訪問控制的方法,說明了基于Struts權(quán)限管理系統(tǒng)的基本原理和實現(xiàn)的技術(shù)。

        關(guān)鍵詞:Struts;權(quán)限;角色;用戶;資源

        中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)10-20ppp-0c

        The Research and Implementation of STRUTS-based Privilege Management System

        JIANG Shuang-lin

        (Suzhou Art Design Technology Insitute, Suzhou 215000, China)

        Abstract: This paper introduces some characteristics of Struts, and illustrates three methods to access control.The STRUTS-basedprivilege management system's basic principle and technology of implementation are proposed.

        Key words: Struts;Permission;Role;User;Resource

        1 引言

        進(jìn)入到21世紀(jì),隨著網(wǎng)絡(luò)的迅速發(fā)展,對電子商務(wù),電子政務(wù)和各種網(wǎng)絡(luò)應(yīng)用系統(tǒng)有越來越高的要求,不僅能更充分地共享資源,同時更要求保護(hù)系統(tǒng)資源不受侵犯,更需要為適當(dāng)?shù)脑L問者提供更合理的服務(wù),要求系統(tǒng)必須要能夠控制:哪些訪問者能夠訪問系統(tǒng)的信息,訪問者訪問的是“什么信息”,訪問者對他所訪問的數(shù)據(jù)擁有什么樣的“權(quán)限”,這就涉及到網(wǎng)絡(luò)安全的重要內(nèi)容:訪問控制。訪問控制是網(wǎng)絡(luò)安全防范和保護(hù)的主要核心策略,它的主要任務(wù)是保證網(wǎng)絡(luò)資源不被非法使用和訪問。本文首先介紹了訪問控制的一些方法,然后是Struts的介紹,最后闡述本系統(tǒng)的設(shè)計與實現(xiàn)等。

        2 訪問控制

        訪問控制技術(shù)是由美國國防部(Department of Defense, DoD)資助的研究和開發(fā)成果演變而來的。這一研究導(dǎo)致兩種基本類型訪問控制的產(chǎn)生:自主訪問控制(Discretionary Access Control, DAC)和強制訪問控制(Mandatory Access Control, MAC)。最近幾年,基于角色的訪問控制(Role Based Access Control,簡稱RBAC)也正得到廣泛的研究。

        基于角色的訪問控制是指在應(yīng)用環(huán)境中,通過對合法的訪問者進(jìn)行角色認(rèn)證來確定訪問者在系統(tǒng)中對哪類信息有什么樣的訪問權(quán)限。系統(tǒng)只問用戶是什么角色,而不管用戶是誰。角色可以理解成為其工作涉及相同行為和責(zé)任范圍內(nèi)的一組人,一個訪問者可以扮演多個角色,一個角色也可以包含多個訪問者。角色訪問控制具有以下優(yōu)點:便于授權(quán)管理、便于賦予最小特權(quán)、便于根據(jù)工作需要分級、責(zé)任獨立、便于文件分級管理、便于大規(guī)模實現(xiàn)。角色訪問是一種有效而靈活的安全措施,系統(tǒng)管理模式明確,節(jié)約管理開銷,當(dāng)前流行的數(shù)據(jù)管理系統(tǒng)都采用了角色策略來管理權(quán)限。

        3 Struts

        Struts最早是作為Apache Jakarta項目的組成部分問世運作。項目的創(chuàng)立者希望通過對該項目的研究,改進(jìn)和提高JSP、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。 Struts的優(yōu)點主要集中體現(xiàn)在兩個方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活運用,能大大提高開發(fā)效率。關(guān)于頁面導(dǎo)航,將是今后的一個發(fā)展方向。事實上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處。

        3.1 Struts實現(xiàn)MVC的機制[1]

        下圖顯示了Struts實現(xiàn)的MVC框架。

        3.1.1 模型(MODEL)

        模型表示程序的狀態(tài)和業(yè)務(wù)邏輯,通常由JavaBean或EJB來實現(xiàn)。

        3.1.2 視圖(VIEW)

        視圖是通過一組JSP程序?qū)崿F(xiàn)的。這些JSP程序中不包含業(yè)務(wù)邏輯,也不包括模型的信息。模型的信息是通過控制器傳遞的。在Struts中ActionForm 也被看成是視圖的一部分。

        3.1.3 控制器(CONTROLLER)

        控制器部分由ActionServlet和Action來實現(xiàn)。ActionServlet也就是Struts框架用來和Web容器交互的接口。該類是Struts框架的核心組件。ActionServlet繼承了HttpServlet類。它在MVC模型中扮演中央控制器的角色。ActionServlet主要負(fù)責(zé)接受HTTP請求信息,根據(jù)struts-config.xml文件的配置信息選擇合適Action來處理請求。并傳遞請求過程中的數(shù)據(jù),這些數(shù)據(jù)是通過ActionForm傳遞的。Action本身也并不包含業(yè)務(wù)邏輯的處理代碼,它只是負(fù)責(zé)調(diào)用業(yè)務(wù)的處理代碼,調(diào)用這些代碼的方法在execute()方法中。該方法在調(diào)用業(yè)務(wù)處理以后會返回一個ActionForward對象來選擇對應(yīng)的視圖。一般而言我們的Action必須直接或間接的繼承該類。然后重寫excecute()方法以完成我們自己的處理消息。

        3.1.4 Struts的配置文件struts-config.xml

        該文件實質(zhì)是一個控制器和視圖的黏合劑,控制器之所以能夠選擇對應(yīng)的視圖,以及視圖能夠通過對應(yīng)的控制器查詢到模型中的數(shù)據(jù)都是依賴該文件。該文件是一個XML文件,在該配置文件中每Action都對應(yīng)一個標(biāo)簽用來映射Action類的信息。

        4 系統(tǒng)設(shè)計原理系統(tǒng)設(shè)計原理

        本系統(tǒng)主要是受基于角色的訪問控制(RBAC)原理啟發(fā)來進(jìn)行設(shè)計。系統(tǒng)的核心體現(xiàn)在如下的E-R中。

        用戶(User)[2]:權(quán)限的主體。按照RBAC理論,User擁有的權(quán)限只能通過賦予其Role,獲取Role的權(quán)限,User不直接接受權(quán)限,這樣和現(xiàn)實的職能部門相吻合,授權(quán)管理更有效、方便。

        用戶組(UserGroup):權(quán)限的主體。和User類似,UserGroup 不直接接受權(quán)限。UserGroup是User的集合。UserGroup可以實現(xiàn)繼承,在創(chuàng)建UserGroup時指定其上級組。當(dāng)某一User屬于某一UserGroup時,其就擁有該UserGroup的所有權(quán)限。這樣規(guī)則簡單,管理容易,更便于系統(tǒng)大規(guī)模的權(quán)限管理。從上面E-R圖可以看出,在邏輯結(jié)構(gòu)上,User和UserGroup是多對多的關(guān)系,一個User可以屬于不同的UserGroup,一個UserGroup可以擁有不同的User。用戶組之間可以可以有上下級關(guān)系,對于用戶組可以通過設(shè)置parent_id(上級組id),將上級關(guān)聯(lián)起來,上、下級組之間是一對多的關(guān)系

        角色(Role)[3]:擁有一定數(shù)量權(quán)限的抽象概念。在RBAC模型中Role是User、UserGroup和Permission的紐帶,從上面E-R圖可以看出,Role和User是多對多的關(guān)系,一個Role可以賦給多個User(例如一個部門的員工可能是同一種角色),一個User也可以擁有多個Role(例如身兼數(shù)職)。同樣一個Role可以賦給多個UserGroup,一個Usergroup也可以擁有多個Role。一個Role可以擁有多個Permission,一個Permission也可以分屬于多個Role中。角色的創(chuàng)建使用,分離了User、Usergroup和Permission,從程序設(shè)計上講結(jié)構(gòu)更加清晰,從使用者來講更符合現(xiàn)實情形,管理權(quán)限更加有效,尤其是大型權(quán)限管理。

        操作(Operation):操作。例如對于頁面資源有訪問、不可訪問類型;對于按鈕資源有可用、不可用等。

        權(quán)限(Permission):描述對一種資源的訪問能力。對受保護(hù)的資源操作的訪問許可(Access Permission),是綁定在特定的資源實例上的。對應(yīng)地,訪問策略(Access Strategy)和資源類別相關(guān),不同的資源類別可能采用不同的訪問模式(Access Mode)。例如,頁面具有能打開、不能打開的訪問模式,按鈕具有可用、不可用的訪問模式,文本編輯框具有可編輯、不可編輯的訪問模式。單純的權(quán)限沒有任何意義。權(quán)限表中的權(quán)限類型和資源類型表中的資源類型相關(guān)。所以,本系統(tǒng)中,新增的權(quán)限必須選擇權(quán)限類型,也就是在資源類型表中確定權(quán)限類型。如果沒有某一種類型的資源,也就無從建立此種類型的權(quán)限。權(quán)限產(chǎn)生意義,必須和具體的資源實例發(fā)生關(guān)系,就是操作權(quán)限和資源表相關(guān)聯(lián)的資源權(quán)限表。

        資源(Resource):資源之間存在父子關(guān)系(指定父資源id),父子之間是一對多的關(guān)系。刪除父資源,子資源一并被刪除。刪除某一資源,除了操作資源表外,還要操作資源權(quán)限表。

        資源類型(Resourcetype):資源和資源類型是多對一的關(guān)系,也即一種資源類型可有許多資源實例。當(dāng)刪除一個資源類型時,要刪除資源表中所有該類型的資源,還要刪除該權(quán)限類型的權(quán)限,更新和權(quán)限表相關(guān)聯(lián)的資源權(quán)限表、用戶權(quán)限表、角色權(quán)限表、用戶組權(quán)限表、權(quán)限操作表。

        5 系統(tǒng)實現(xiàn)概述

        本系統(tǒng)設(shè)計采用了Struts結(jié)構(gòu),結(jié)構(gòu)較為清晰,后期維護(hù)更新較為方便。系統(tǒng)主要實現(xiàn)了登陸、用戶(組)、角色、權(quán)限、資源、資源類型、操作類型管理功能。在數(shù)據(jù)庫設(shè)計上,設(shè)計了用戶表、用戶組表、角色表、權(quán)限表、操作表、資源表、資源類型表,以及它們之間的關(guān)聯(lián)表(可參看圖3)。由于采用了Struts結(jié)構(gòu),故需要設(shè)計視圖、控制器、模型組件。在這些組件中,最核心的還是模型組件。系統(tǒng)中最關(guān)鍵的類為LoginBean、Userbean、ugbean、Rolebean、Permissionbean、Resourcebean、Operationbean、ResourceTypebean,它們實現(xiàn)的功能依次為:用戶的登陸管理、用戶組的登陸管理、角色管理、權(quán)限管理、資源管理、操作管理、資源類型管理。下面結(jié)合登陸管理和角色管理簡述其實現(xiàn)過程。

        5.1 登陸管理

        在用戶輸入用戶名和密碼后,系統(tǒng)首先進(jìn)行簡單的表單驗證,包括用戶名、密碼是否為空,一旦為空,則返回登陸界面,重新輸入。當(dāng)通過表單驗證后,進(jìn)入控制器組件loginAction中,進(jìn)行更為實質(zhì)的驗證。loginAction調(diào)用模型組件loginBean的public boolean getTrue(String name,String password)方法來判斷用戶名、密碼是否匹配,若匹配則進(jìn)入到主頁面,否則返回登陸界面。其中,loginBean的getTrue(String name,String password)方法,將訪問“用戶”表中的用戶名和密碼。在“用戶”表中存放的密碼,并不是明文,而是采用MD5算法加密后得到的字符串,所以在調(diào)用getTrue(String name,String password)方法前,在loginAction中將得到的明文密碼,用MD5算法計算得到新的字符串,將其作為getTrue的password參數(shù)。public boolean getTrue(String name,String password)的實現(xiàn)方法中關(guān)鍵sql語句如下:

        \"select * from User where user_code='\"+username+\"' and user_password='\"+pass+\"'\";

        5.2 角色管理

        角色是系統(tǒng)中權(quán)限的抽象集合。應(yīng)用系統(tǒng)中的使用角色,每個角色對應(yīng)著一些特定的權(quán)限。角色和用戶之間是多對多的關(guān)系。一個用戶可以擁有多個角色,同時一個角色也可以賦給多個用戶。同樣,角色和用戶組也是多對多的關(guān)系。角色和權(quán)限也是多對多的關(guān)系。一個權(quán)限可能分屬于多個角色,同時一個角色可以擁有多個權(quán)限。角色的應(yīng)用,使得權(quán)限管理更加清晰,維護(hù)更為方便。

        角色管理主要提供:查詢、修改、刪除、新增功能。例如:

        刪除角色:從表單中選擇相應(yīng)的角色,點按刪除后,系統(tǒng)將刪除該角色。刪除了一個角色要同時更新和角色相關(guān)聯(lián)的用戶角色表、用戶組角色表、角色權(quán)限表。模型組件Rolebean中實現(xiàn)該功能的重要sql為:

        \"delete from rel_role_user where role_id='\"+id+\"'\"; //刪除用戶角色關(guān)系

        \"delete from rel_group_role where role_id='\"+id+\"'\"; //刪除用戶組角色關(guān)系

        \"delete from rel_role_permission where role_id='\"+id+\"'\"; //刪除角色權(quán)限關(guān)系

        \"delete from Role where role_id='\"+id+\"'\"; //刪除角色

        6 結(jié)束語

        本權(quán)限管理系統(tǒng)目前已可投入使用(某省高速公路合同管理系統(tǒng)中以使用了本系統(tǒng))。本系統(tǒng)以Web方式對系統(tǒng)中的用戶(組)、資源、角色、權(quán)限等進(jìn)行配置,外部Web通過系統(tǒng)提供的API來進(jìn)行訪問控制,具有一定的通用性,但是RBAC的應(yīng)用,還不是很充分。

        參考文獻(xiàn):

        [1] 孫衛(wèi)琴. 精通Struts:基于MVC的Java Web設(shè)計與開發(fā)[M]. 電子工業(yè)出版社,2004.8.

        [2] 李興唐. 基于角色的權(quán)限管理系統(tǒng)[D]. 吉林大學(xué)研究生學(xué)位論文,2004.

        [3] 王鑫. 基于角色的權(quán)限系統(tǒng)開發(fā)與應(yīng)用[D]. 西南交通大學(xué)研究生學(xué)位論文,2005.

        收稿日期:2008-03-04

        作者簡介:姜雙林(1976-),男,江蘇省蘇州市人,講師,碩士,研究方向為計算機網(wǎng)絡(luò)。

        中文字幕无码人妻丝袜| 亚洲精品无码av片| av鲁丝一区鲁丝二区鲁丝三区| 野外亲子乱子伦视频丶| 99在线精品免费视频九九视| 野花在线无码视频在线播放| 蜜臀av免费一区二区三区| 成人欧美在线视频| 国产在线天堂av| 日本一区二区高清视频在线播放| 亚洲熟妇av一区二区三区hd| av网站大全免费在线观看 | 国产av无码专区亚洲精品| 亚洲男同gay在线观看| 人妻精品动漫h无码网站| 亚洲av无码一区二区乱子伦| 免费看奶头视频的网站| 丰满人妻无套内射视频| 久久国产精品美女厕所尿尿av| 青青草免费手机视频在线观看| 国产精品爽爽ⅴa在线观看| 亚洲综合色区另类av| 国产精品区一区第一页| 国产精品一区二区资源| 挑战亚洲美女视频网站| 日本午夜a级理论片在线播放| 中文字幕亚洲视频一区| 成在线人免费视频| 国产特级全黄一级毛片不卡| 无码av永久免费大全| 美女性色av一区二区三区| 国产 高潮 抽搐 正在播放| 国产精品免费久久久久软件| 男人的天堂在线无码视频 | 国产免费一区二区三区在线观看 | 久久亚洲乱码中文字幕熟女 | 国产人妻熟女高跟丝袜| 不卡av电影在线| 亚洲国产成人久久一区| 国产精品久久久久尤物| 日本加勒比一道本东京热|