【正文】
s two children, children no more. They were gone forever. Billy was guided by dread and the lack of dread. Dread told him when to stop. Lack of it told him when to move again. He stopped. He went into his daughter39。(4)學(xué)??稍试S學(xué)位論文被查閱或借閱。致 謝本論文的工作是2007年2月至2007年6月在成都信息工程學(xué)院網(wǎng)絡(luò)工程系完成的。本系統(tǒng)不但完成了設(shè)計(jì)上的系統(tǒng)功能開(kāi)發(fā),同時(shí)也將其應(yīng)用到SMART系統(tǒng)中進(jìn)行二次系統(tǒng)開(kāi)發(fā),但系統(tǒng)仍然在很多設(shè)計(jì)方面存在著不足之處,比如安全性等方面,有待后期進(jìn)行改進(jìn)。2. 用戶角色權(quán)限測(cè)試我們選擇兩個(gè)角色,Admin和STU,其中當(dāng)前用戶teacher只具有Admin角色,并且Admin角色不具有刪除日志的權(quán)限(日志的刪除權(quán)限已經(jīng)經(jīng)過(guò)測(cè)試通過(guò)),而STU則具有刪除日志的權(quán)限。圖53 菜單列表從上面的測(cè)試結(jié)果可以看到,系統(tǒng)對(duì)菜單的權(quán)限控制功能成功。 ()。 }下面列出了對(duì)PcmUserBusiness類的三個(gè)方法的測(cè)試?yán)?,代碼如下: Map params = new HashMap()。 j++) { if (!(temp[j])) { break。來(lái)實(shí)現(xiàn),在取得了用戶的權(quán)限CODE之后,我們就通過(guò)一個(gè)displayMenu()方法來(lái)檢測(cè)哪些菜單是在用戶的權(quán)限范圍內(nèi)的,并將生成在用戶權(quán)限范圍內(nèi)的菜單結(jié)果返回。其權(quán)限功能實(shí)現(xiàn)是在Struts的Action中完成的,該部分主要包括有日志管理、日志搜索、日志查看、日志刪除四種權(quán)限,比如對(duì)日志查看和日志刪除的權(quán)限實(shí)現(xiàn)我們?cè)贏ction里面是這樣實(shí)現(xiàn)的:(CancelButton)。).append(()) .append(39。%=((Boolean) (sortable)).booleanValue()%39。 權(quán)限設(shè)置管理 用戶界面和流程圖權(quán)限設(shè)置就是對(duì)某一個(gè)角色進(jìn)行任務(wù)(系統(tǒng)中的每一個(gè)功能就叫做一個(gè)任務(wù))分配,由于任務(wù)和角色的對(duì)應(yīng)關(guān)系是一對(duì)多,而角色和任務(wù)的關(guān)系也可以是一對(duì)多的關(guān)系,所以在權(quán)限設(shè)置的時(shí)候采用表格的方式來(lái)進(jìn)行,所以在用戶角色設(shè)置的界面方式以table的方式來(lái)實(shí)現(xiàn)。 PcmUserDAO dao = new PcmUserImpl()。 } 角色設(shè)置管理 用戶界面和流程圖要對(duì)用戶進(jìn)行角色設(shè)置之前必須查詢出需要對(duì)哪些用戶設(shè)置,角色設(shè)置就是對(duì)某一個(gè)用戶或多個(gè)用戶進(jìn)行角色分配,由于用戶和角色的對(duì)應(yīng)關(guān)系是一對(duì)多,而角色和用戶的關(guān)系也可以是一對(duì)多的關(guān)系,所以在用戶角色設(shè)置的界面方式以table的方式來(lái)實(shí)現(xiàn)。 Iterator iter = ()。 }2. 用戶的UIN唯一性檢查UIN唯一性檢查和NO唯一性檢查結(jié)構(gòu)上是一樣的。List list = (List) (new Carrier(map, , SearchTeacherByNo))。 PcmTask task = ()。//獲取用戶角色列表 if (set != null) { Iterator iter = ()。 if (type != null amp。 permission = (userData)。表39 模塊表(MODULE)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注auto_idDECIMAL(18,0)YESNONO自增IDmodule_idDECIMAL(18,0)NONONO模塊IDmodule_codeVARCHAR(50)NONONO模塊CODEmodule_nameVARCHAR(50)NONONO模塊名稱parsent_idDECIMAL(18,0)NONONO父IDis_validateINTEGERNONONO是否有效descriptionVARCHAR(100)NONOYES描述216。數(shù)據(jù)庫(kù)ER設(shè)計(jì)圖結(jié)構(gòu)如下:圖31 系統(tǒng)數(shù)據(jù)庫(kù)結(jié)構(gòu)圖 數(shù)據(jù)庫(kù)表設(shè)計(jì) 用戶表216。n 模塊劃分菜單管理:通過(guò)用戶登錄系統(tǒng)的權(quán)限來(lái)生成在該權(quán)限范圍內(nèi)的菜單結(jié)構(gòu)。系統(tǒng)日志是記錄了用戶對(duì)系統(tǒng)表的幾乎所有操作,可以通過(guò)日志來(lái)查看過(guò)去用戶對(duì)該系統(tǒng)進(jìn)行了什么樣的操作,也可以通過(guò)日志來(lái)恢復(fù)一些歷史數(shù)據(jù);試卷日志管理主要用來(lái)查看用戶過(guò)去對(duì)試卷的一些操作。我們這樣通過(guò)設(shè)置角色和任務(wù)的關(guān)聯(lián)已經(jīng)用戶和角色的管理來(lái)實(shí)現(xiàn)權(quán)限的管理。 角色設(shè)置管理n 功能需求該功能主要為系統(tǒng)管理員提供來(lái)管理用戶在系統(tǒng)中所具有的權(quán)限功能,來(lái)為這些用戶分配他們的權(quán)限范圍,保證系統(tǒng)的安全。n 技術(shù)方案由于系統(tǒng)用戶主要分為兩大類,并且這些用戶中教師和學(xué)生的用戶量比例比較大,教師用戶和學(xué)生用戶的權(quán)限設(shè)定豐富程度相差也比較大,所以在實(shí)現(xiàn)用戶管理的時(shí)候,將用戶管理分成兩個(gè)模塊來(lái)對(duì)其進(jìn)行相應(yīng)的管理,這樣在權(quán)限控制和用戶管理上比較容易實(shí)現(xiàn)和控制。n 模塊劃分搜索功能:系統(tǒng)管理員可以通過(guò)參數(shù)匹配來(lái)搜索當(dāng)前系統(tǒng)的用戶,將輸入的某些參數(shù)作為模糊查詢的方式來(lái)搜索,并將所查詢出來(lái)的結(jié)果以一種統(tǒng)計(jì)的列表方式展現(xiàn)出來(lái)。n 模塊劃分用戶登錄:用戶登錄系統(tǒng),為用戶獲取權(quán)限操作,并更新用戶信息。該模塊要實(shí)現(xiàn)的功能包括新增用戶、更新用戶、刪除用戶、用戶密碼修改、用戶激活、用戶搜索、學(xué)生用戶升學(xué)調(diào)整。該系統(tǒng)主要由登錄驗(yàn)證、用戶管理、角色管理、角色設(shè)置管理、權(quán)限設(shè)置管理、日志管理、菜單權(quán)限控制7個(gè)模塊構(gòu)成。它能有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)也很安全。 eclipseEclipse 是一個(gè)開(kāi)放源代碼的、基于 Java 的可擴(kuò)展開(kāi)發(fā)平臺(tái)。216。 J2EEJ2EE平臺(tái)是用于在分布式企業(yè)環(huán)境中開(kāi)發(fā)、部署和執(zhí)行應(yīng)用程序的體系結(jié)構(gòu)。 目的通過(guò)對(duì)用戶權(quán)限的控制,讓不同的用戶登錄系統(tǒng)后能夠看到不同的功能,以提高用戶對(duì)管理對(duì)象的方便性和高效性。通過(guò)對(duì)系統(tǒng)功能的各種設(shè)置,實(shí)現(xiàn)對(duì)系統(tǒng)各級(jí)用戶的角色設(shè)置和角色分配,限制和記錄各級(jí)用戶在系統(tǒng)中的對(duì)信息的功能操作,體現(xiàn)了系統(tǒng)權(quán)限設(shè)置的靈活性、數(shù)據(jù)操作的安全性。關(guān)鍵詞: 用戶;角色;權(quán)限;多用戶多角色管理SMART System—The Design and Development of Function Management ModuleAbstractSMART System is a new intelligent information management system of online examine. It uses the JAVA technology in language, uses the MVC in framework, and uses the IOC antilogy of Spring and ORM technology in its operation framework. The system mainly implements the online examination and evaluation of students, and the teachers management and maintenance of students examination information online as well. The system uses multiplex users and roles management mechanism. After the users log on, they can use the functions they owned. The management function module of system includes users management, role management, role setup management, right management, system menu management, log management and the validation of the users’ logon management. Through these configuration of system functions, the system carries out the role intercalation and distribution of the all users, restricts and records the information of all users how they used in the system. These can make the system right configuration flexible, and the data operations security.Key words: the users。 意義系統(tǒng)功能管理模塊是現(xiàn)在管理系統(tǒng)軟件中很重要的一環(huán),很多國(guó)內(nèi)較出名的軟件廠商都設(shè)計(jì)了較完善的也具有自己特色的系統(tǒng)功能管理模塊(權(quán)限管理模塊),但對(duì)于很多沒(méi)那么規(guī)范的軟件商,他們經(jīng)常是接到系統(tǒng),就設(shè)計(jì)一套系統(tǒng)功能管理模塊,每套都不同,有的甚至不夠重視,隨便寫(xiě)上一段,哪里都拷過(guò)去用;有的也曾費(fèi)盡心機(jī),但結(jié)果總不能令自己滿意。分布式應(yīng)用程序需要系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全性、客戶端連接池?cái)?shù)據(jù)庫(kù)訪問(wèn)。 StrutsStruts就是在JSP Model2的基礎(chǔ)實(shí)現(xiàn)了MVC設(shè)計(jì)模式的WEB Framework。它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開(kāi)發(fā)工具(Java Development Tools,JDT)。SMART在線考試系統(tǒng)是為處在不同地點(diǎn)的不同用戶提供網(wǎng)上數(shù)據(jù)操作服務(wù)的。系統(tǒng)的總體設(shè)計(jì)框架如圖22:圖22系統(tǒng)總體設(shè)計(jì)框架流程圖216。用戶管理模塊功能框架圖如圖:圖25 用戶管理模塊功能圖216。Session維護(hù):維護(hù)用戶登錄系統(tǒng)的會(huì)話時(shí)間。新增功能:系統(tǒng)管理員可以直接向數(shù)據(jù)庫(kù)增加一個(gè)新的用戶。 角色管理n 功能需求系統(tǒng)為用戶提供不同功能權(quán)限的角色對(duì)象,用戶擁有的功能是由用戶擁有的角色對(duì)象來(lái)確定,一個(gè)用戶可以擁有多個(gè)角色對(duì)象,用戶的功能是由這多個(gè)角色對(duì)象的并集。n 模塊劃分搜索功能:該功能主要是搜索當(dāng)前系統(tǒng)中所具有的角色或用戶,主要為角色設(shè)置管理提供管理的對(duì)象。n 模塊劃分搜索功能:該功能提供了模糊匹配搜索功能,搜索的對(duì)象主要包括兩個(gè),角色和任務(wù)。n 模塊劃分搜索功能:可以通過(guò)匹配參數(shù)對(duì)用戶過(guò)去對(duì)系統(tǒng)的一些操作進(jìn)行查詢搜索,提供了對(duì)某些輸入?yún)?shù)的模糊匹配搜索。n 應(yīng)用場(chǎng)景用戶在登錄系統(tǒng)后,看到的系統(tǒng)功能模塊表示他都有權(quán)對(duì)其進(jìn)行操作,而他無(wú)權(quán)管理的功能部分則根本看不到。 教師用戶表教師用戶表主要存儲(chǔ)的信息是教師用戶以及學(xué)校領(lǐng)導(dǎo)之類用戶的信息:表31 教師用戶表(SMART_TEACHER)數(shù)據(jù)結(jié)構(gòu)字段名稱數(shù)據(jù)類型是否是主鍵是否是外鍵是否可NULL備注teacher_idDECIMAIL(18,0)YESNONO自增IDteacher_noVARCHAR(50)NONONO教師NOtypeVARCHAR(20)NONONO類型uinVARCHAR(20)NONONOUINteacher_nameVARCHAR(50)NONONO教師姓名province_noVARCHAR(50)NONOYES省city_noVARCHAR(50)NONOYES市 ounty_noVARCHAR(50)NONOYES區(qū)/縣ref_school_noVARCHAR(50)NONOYES學(xué)校grade_noVARCHAR(50)NONOYES年級(jí)class_noVARCHAR(50)NONOYES班級(jí)teacher_subjectVARCHAR(50)NONOYES所教課程telVARCHAR(20)NONOYES聯(lián)系電話e_mailVARCHAR(50)NONOYESEMAIL地址addressVARCHAR(100)NONOYES地址信息record_numberINTEGERNONONO版本控制remarkVARCHAR(100)NONOYES備注216。 子模塊表該表用來(lái)存儲(chǔ)系統(tǒng)中的每一個(gè)功能的CODE代碼以及他們父子模塊之間的關(guān)系。//加載權(quán)限 ().setAttribute(, permission)。amp。 while (()) {//根據(jù)用戶角色取得角色任務(wù)列表 role = (PcmRole) ()。//獲取任務(wù)CODE if (task != null amp。查找數(shù)據(jù)庫(kù)中是否存在當(dāng)前添加的用戶NO。在struts的action中通過(guò)調(diào)用business中的processSearchByUin方法,并通過(guò)這個(gè)方法來(lái)調(diào)用Impl中的searchByUin來(lái)進(jìn)行UIN查找,代碼實(shí)現(xiàn)如下: HashMap params = n