夏文忠 單長吉
(昭通學(xué)院物理與電子信息工程學(xué)院,云南 昭通 657000)
高校圖書館門戶網(wǎng)站是圖書館所有數(shù)字資源的入口,讀者通過圖書館門戶網(wǎng)站即可快速、方便地訪問圖書館的所有館藏數(shù)字資源。當(dāng)前大部分高校圖書館已擁有多種館藏數(shù)字資源,但這些數(shù)字資源都是由不同的管理信息系統(tǒng)負(fù)責(zé)管理與維護(hù),每個系統(tǒng)都有自己的管理方式,這使得讀者在使用圖書館館藏數(shù)字資源時困難重重。多個系統(tǒng)、多種使用方式對讀者訪問數(shù)字資源造成了困難。
本文提出了基于角色控制的圖書館門戶網(wǎng)站解決方案,使得讀者可以通過圖書館自建的統(tǒng)一身份認(rèn)證[1]系統(tǒng)完成一次登錄、多個系統(tǒng)通用的訪問策略。
RBAC是基于角色的訪問控制模型,它滿足最小權(quán)限給予、責(zé)任分離和數(shù)據(jù)抽象[2]的安全原則。最小權(quán)限原則是授予用戶能正常使用完成業(yè)務(wù)操作最小的權(quán)限集。責(zé)任分離原則是通過調(diào)用相互獨立互斥的角色來共同完成敏感的任務(wù),比如圖書館采編業(yè)務(wù)員與圖書館資產(chǎn)管理員共同參與圖書的驗收業(yè)務(wù)。抽象的數(shù)據(jù)通過權(quán)限的抽象化來體現(xiàn),如校內(nèi)用戶通過Internet訪問圖書館數(shù)字資源可以通過增加虛擬金額獲得資源下載權(quán)限,而不用對所有用戶都提供資源下載權(quán)限。
基于RBAC的圖書館門戶系統(tǒng)需要滿足實用性、方便性、穩(wěn)定性和完全性的系統(tǒng)性能要求,需要完成包括用戶登錄、用戶身份鑒別、權(quán)限管理和用戶角色分配等功能。
圖1 RBAC模型
本系統(tǒng)采用RBAC模型,分別涉及管理員Admin實體類、讀者Readers實體類、訪客Guests實體類、角色RoleBean實體類、角色許可分配Authority-Bean實體類、Action實例及實現(xiàn)數(shù)據(jù)庫CRUD操作的DAO類。
管理員類在圖書館門戶系統(tǒng)中包括兩類子實體:一是系統(tǒng)管理員;另一類是負(fù)責(zé)具體的業(yè)務(wù)功能的圖書管理員。圖書館管理員的具體權(quán)限根據(jù)各自的分工不同再做相應(yīng)的劃分。例如:負(fù)責(zé)采購的管理員只能操作圖書查重和圖書編目,負(fù)責(zé)瀏覽的管理員只能操作讀者圖書的外借與歸還。讀者類中包括教職工和學(xué)生兩類子實體,但他們的基本權(quán)限是相同的,都能通過自己的圖書證號登錄圖書館的門戶系統(tǒng)獲得相應(yīng)的資源訪問權(quán)限。訪客類實體只能訪問圖書館公開的信息資源。角色RoleBean實體定義系統(tǒng)各級實體類所對應(yīng)的訪問權(quán)限,角色許可分配實體類把角色和與之對應(yīng)的實體應(yīng)具有的權(quán)限一一對應(yīng)并分配相應(yīng)的權(quán)限。DAO負(fù)責(zé)操縱數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)的查詢、刪除、更新以及增加操作。
高校圖書館門戶系統(tǒng)提供服務(wù)的對象是廣大讀者。為了區(qū)分讀者是否擁有訪問本館資源的權(quán)限,需要對訪問用戶進(jìn)行身份認(rèn)證。當(dāng)使用圖書館提供的借閱證號進(jìn)行登錄并成功進(jìn)入系統(tǒng)后,認(rèn)為是本館合法用戶,否則認(rèn)為是訪客用戶。對于系統(tǒng)合法用戶,通過系統(tǒng)定義的借閱證號判斷用戶是否為教職工用戶或?qū)W生用戶。但所有讀者用戶都可以使用圖書館的所有數(shù)字資源,并可操縱自己的讀者基本信息。
對于管理員組的角色,細(xì)分為系統(tǒng)管理員組和業(yè)務(wù)管理員組。系統(tǒng)管理員可以修改圖書館門戶的頁面展現(xiàn),開啟或關(guān)閉相應(yīng)的網(wǎng)站頁面功能,查看或修改系統(tǒng)運行參數(shù),備份或還原圖書館門戶的數(shù)據(jù)庫表。圖書館門戶站點中的業(yè)務(wù)管理員組可以操作圖書館的某一子類信息,比如紙質(zhì)圖書采購管理、編目管理、流通借還管理、讀者管理等類別,通過對相應(yīng)組別的管理來實現(xiàn)權(quán)限管理。
訪問類實體在本系統(tǒng)中占用一定的信息訪問量,他們可能是需要了解本校圖書館的師生員工,也可能是外?;蛘咄ㄟ^Internet訪問的訪客,他們只能訪問圖書館對外公開的基本信息,不能訪問圖書館的數(shù)字資源。
根據(jù)幾類實體的分析整理,得到如圖2所示的圖書館系統(tǒng)模塊設(shè)計。
圖2 圖書館系統(tǒng)模塊設(shè)計圖
圖書館門戶是圖書館數(shù)字資源的入口,一旦有非法用戶獲得了高級別的訪問權(quán)限,將會對圖書館整個資源庫造成巨大的危害。故在選用RBAC基本模型的基礎(chǔ)上,使用開源的SSH框架來保證系統(tǒng)的完全性和穩(wěn)定性。在SSH[3]框架中,Struts2負(fù)責(zé)頁面展示和參數(shù)傳遞,Spring負(fù)責(zé)解決對象之間的依賴問題[4],簡化對象的獲取,核心業(yè)務(wù)邏輯的運算。Hibernate實現(xiàn)數(shù)據(jù)庫操作的對象化,為Spring和Struts2提供穩(wěn)定的健壯的持久化操作。
圖書館門戶作為圖書館數(shù)字資源的門戶站點,由管理員、讀者和訪客這3類實體組成。根據(jù)各實體自身特征分別給予其不同的角色,再通過各自的角色獲得相應(yīng)的權(quán)限。其角色權(quán)限配置如圖3所示。
圖3 圖書館角色權(quán)限配置
根據(jù)圖書館所要實現(xiàn)的功能需求,其權(quán)限控制與管理模塊的數(shù)字庫設(shè)計如圖4所示。
SSH框架是一個開源的輕量級框架,是J2EE框架中集中主流、高效的框架,由展現(xiàn)層的Struts2、業(yè)務(wù)邏輯層的Spring和數(shù)據(jù)庫持久層的Hibernate技術(shù)組成。在圖書館門戶站點的應(yīng)用中,使用Struts2進(jìn)行頁面展示和用戶數(shù)據(jù)傳遞。而Struts2是以攔截器為操作核心的技術(shù),故圖書館門戶也以攔截器為基礎(chǔ)進(jìn)行開發(fā)配置。攔截器攔截用戶的訪問請求,判斷用戶的請求類型,然后根據(jù)相應(yīng)的請求類型作出對應(yīng)的請求跳轉(zhuǎn)。如果用戶獲得某一類角色權(quán)限,那么他將能處理該角色可以操作的相應(yīng)權(quán)限;如果用戶未獲得此用戶權(quán)限,那么通過Struts2的攔截器Action跳轉(zhuǎn)到低級別的訪問權(quán)限角色中執(zhí)行。
圖4 圖書館RBAC管理模塊ER模型
Spring是頁面截面編程技術(shù)的集大成者,它可以最大限度地實現(xiàn)各功能模塊間的低耦合,而對業(yè)務(wù)系統(tǒng)保持低侵入。圖書館門戶系統(tǒng)中的Spring負(fù)責(zé)處理通過Struts2攔截器攔截跳轉(zhuǎn)過來的業(yè)務(wù)請求,當(dāng)用戶擁有管理員組的權(quán)限時,Spring負(fù)責(zé)調(diào)用業(yè)務(wù)處理類,處理用戶請求。Struts2把未獲得角色相應(yīng)權(quán)限的用戶傳遞給Spring業(yè)務(wù)邏輯,則Spring調(diào)用業(yè)務(wù)邏輯把處理請求轉(zhuǎn)發(fā)到低一級別的處理模塊,直到角色和權(quán)限匹配。通過Spring處理的業(yè)務(wù)請求,再調(diào)用Hibernate處理數(shù)據(jù)庫DAO類實現(xiàn)數(shù)據(jù)庫的CRUD操作。待操作完成后結(jié)果將返回給Spring業(yè)務(wù)控制器,通過Spring業(yè)務(wù)控制器再返回給Struts2展示Action,完成整個系統(tǒng)流程。
本文結(jié)合工作實際,以基于角色的RBAC模型為基礎(chǔ),用輕量級的SSH框架設(shè)計了一個滿足圖書館應(yīng)用的身份識別與權(quán)限管理系統(tǒng)。本文解決問題的思路和方法為開發(fā)類似信息系統(tǒng)提供了一個方向,具有開發(fā)類似系統(tǒng)的分析設(shè)計參考價值。
[1]李冰.用戶統(tǒng)一身份認(rèn)證系統(tǒng)的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱理工大學(xué),2005.
[2]任中方,張華.MVC模式研究的綜述[J].計算機應(yīng)用研究 ,2004(10):1-2.
[3]馮潤民.基于SSH的高校學(xué)生管理系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程,2009(6):280-281.
[4]吳波,王晶.基于基本RBAC模型的權(quán)限管理框架的設(shè)計與實現(xiàn)[J].計算機系統(tǒng)應(yīng)用,2011(4):50-52.