宋成明
摘要: 高校科研信息管理系統主要提供高校對科研成果的錄入、材料的初核、成果的評定、查詢統計與匯總等各類處理。本文介紹了Shiro框架的主要功能特征,并基于Shiro應用框架對現有的高校科研信息管理系統實現系統集成,提供系統所需要的用戶、角色、資源管理。為科研管理實現細粒度的訪問控制,為科研信息安全提供保障,滿足了高校對科研信息管理的需求。
關鍵詞: 訪問控制; 科研; Shiro; 認證
中圖分類號:TP393.08
文獻標志碼:A
文章編號:2095-2163(2017)04-0062-03
0引言
隨著我國高等教育信息化發展,推動信息技術與科研管理融合創新還處于探索階段[1-2]。在科研管理信息系統的集成與整合上涉及到了權限管理的優化與再造。
結合科研信息的發展及學校自身管理的實際需求,采用Shiro安全框架與現有的科研信息管理系統集成,實現科研信息管理用戶、菜單、角色的靈活配置,提升了系統的安全性,為高校系統整合提供參考。
1Shiro框架簡介
Shiro是用于身份驗證和授權的開源安全框架,通過一個簡單易用的 API 提供身份驗證、角色授權、管理會話以及密碼加密。提供基于角色的細粒度的權限控制,增強了對緩存的支持。
2科研信息管理系統需求
2.1科研信息管理系統的現行技術
某高校現行的科研管理系統采用 B/S 體系結構,以Spring+Spring MVC+MyBatis開源框架設計開發[3-4]。系統采用MySQL數據庫,在邏輯上劃分了 3 個層次,分別是數據層、基礎層和應用層。在此,給出各層的功能闡釋如下。
1)數據層。數據層是科研信息管理系統的業務模型,提供科研成果數據的管理服務。包含了各種科研成果信息數據、用戶權限信息等,是科研數據管理的基礎。
2)基礎層。基礎層采用Java EE框架技術設計實現,基于分層解耦思想,系統前臺界面重點采用Bootstrap設計開發,以Spring為核心,由輕量級框架SSM(Spring + Spring MVC + MyBatis)整合系統開發架構。
3)應用層。應用層實現了科研信息管理系統的核心功能,功能模塊主要包括科研成果錄入、參與人員管理、院系初審、科研處核定、查詢匯總和系統管理等。
2.2訪問控制需求
隨著高校科研成果的日益增多,科研信息管理系統中,現有的科研信息管理方式給工作人員帶來了繁重的工作壓力[5]。在高校信息化發展的大前提下,科研系統與高校其它系統的整合成為必行之路。科研成果的錄入、紙質文件的初審、成果的考核量化與界定不再由科研部門人員統一錄入。科研信息管理的實際需要,對高校各類人員的系統訪問提出新的需求。研究可得,需求分析如下。
1)用戶登錄。采用學校信息中心提供的統一身份編碼進行系統登錄與訪問。
2)菜單管理。將科研信息管理系統中的各種資源,以系統菜單的形式保存在數據表中,以便于后期對系統資源的統一分配與管理。
3)數據可見性。結合學校科研管理的實際,將科研信息管理系統的數據范圍定義為:0-所有數據;1-所在學校及以下數據;2-所在部門及以下數據;3-僅本人數據;9-按明細設置。
4)角色管理。能夠將系統在信息錄入、初審、終審過程中的各方面人員設計確定分組、分級。能夠對指定角色的數據可見性進行實時管理。
5)用戶與角色管理。靈活管理各組人員的用戶。能夠實時地根據學校人事處對教職工人員變化做出動態的管理。
3系統設計與實現
[JP2]本文采用MyEclipse2017 + Maven進行系統開發。研究采用的主要技術為Spring + SpringMVC + Shiro。項目通過導入現有的源代碼對Spring和SpringMVC進行配置。為了對系統有效展開整合研究,實現通過Shiro安全框架來設計支持用戶的訪問控制,則需要引入Shiro以及Shiro集成到Spring的包。[JP]
3.1數據庫設計
本文對現行的科研信息管理系統的集成基于Shiro安全框架,結合Shiro框架中提供的API接口,充分利用Shiro提供的通配符特性,實現科研信息管理系統對訪問控制細粒度管理的需求,設置訪問控制模型,能夠對Web應用內的權限和資源(URL鏈接、操作按鈕、頁面的HTML元素)進行管理。具體內容如下:
1)SYS_USER:用戶信息表,用于存儲學校所有師生用戶信息。同時為學校其它應用系統的融合提供數據支持。
2)SYS_ROLE:角色信息表,用于存儲科研信息管理系統的角色信息。表中內置基本的用戶角色,提供系統啟動運行的必須角色信息。該表是Shiro框架的核心組件。
3)SYS_MENU:系統資源表,用于存儲系統內可訪問的菜單信息、操作信息。表中的PERMISSION字段結合Shiro框架的通配符機制設計,結合資源和操作來定義細粒度的資源訪問,PERMISSION字段中的數據值命名規則為[業務模塊]:[資源名稱]:[操作名稱],如sr:project:view(權限:查看項目)。
4)SYS_USER_ROLE:用戶與角色對應關系表,存儲系統中用戶與指定角色的對應信息。
5)SYS_ROLE_MEUN:角色與權限對應關系表,存儲系統中角色與資源(操作)的對應信息。
6)SYS_DICT:數據字典表,存儲本系統的數據字典信息,如項目類型、本人角色。
3.2定義Shiro攔截器
[JP2]在項目集成時,對指定的URL進行攔截,如果沒有驗證成功的需要驗證,然后額外給用戶賦予角色和權限。通過繼承AuthorizingRealm實現自定義的攔截器SystemAuthorizingRealm,[JP]在子類中實現登錄驗證和賦予角色權限的2個方法,使得Shiro從自定義的Realm中獲取相應的用戶認證信息。可以對用戶登錄的驗證碼、用戶狀態、登錄次數做出統一的管理。對于登錄成功的用戶,取得其相應的角色,記錄登錄的IP與登錄時間,同時保存用戶的登錄日志。endprint
3.3與SpringMVC集成
在Web.xml設計配置Shiro的過濾器來實現Shiro與基于SpringMVC框架系統應用的集成。配置完成后,Shiro 過濾器會將用戶每個請求進行處理。根據科研信息管理的實際業務需要,調用特定的業務邏輯方法來確保請求的資源在滿足業務規則的條件下方可訪問。下面的代碼顯示了Web.xml文件中相對應的配置片段。
需要在classpath路徑下配置spring-shiro-web.xml文件。配置代碼如下:
<!-- Realm實現 -->
[JP6]
<!--安全管理器 -->
<!-- Shiro的Web過濾器 -->
[JP4]
/authc/admin = roles[admin]
/authc/** = authc
/** = anon
shiroFilter里面配置了多個property,其中,loginUrl屬性指沒有登錄的用戶請求需要登錄的頁面時自動跳轉到登錄頁面; unauthorizedUrl屬性指沒有權限默認跳轉的頁面。 filterChainDefinitions屬性對于過濾器的規則為:
1)Shiro校驗配置的順序為從上而下。Shiro驗證URL鏈接時,如果匹配成功便不再繼續查找。
2)Web應用程序運行時,Shiro將會自動創建Filter實例。
4結束語
本文簡述了某高校科研信息管理系統的技術架構,提出在系統訪問控制集成中的實際需求,設計實現了基于Shiro的應用系統整合實例。研究中,通過Shiro框架的特性進行數據表的設計,系統的整合,從而有效保證了科研管理在訪問控制中的業務需求。實際應用表明,基于Shiro安全框架對系統資源訪問粒度進行自由配置,并且在系統運行中,能夠通過CacheManager提高系統權限管理的執行效率,對高校信息化發展中的權限管理有一定的借鑒意義。
參考文獻:
[WTBZ][ST6BZ][HT6SS][1] [ZK(#〗
習近平. 科技是國之利器[EB/OL].[2016-06-06]. http://news.xinhuanet.com/politics/2016-06/06/c_129043555.htm.
[2] 李嵐冰,律明. 高校就業信息化建設的問題與對策研究[J]. 情報科學, 2017,35 (2):107-111.
[3] 劉建圻, 曾碧, 鄭秀璋. 基于RBAC權限管理模型的改進與應用[J]. 計算機應用, 2008,28(9):2449-2451.
[4] 徐孝成. 基于Shiro 的Web 應用安全框架的設計與實現[J]. 電腦知識與技術,2015,11(16):93-95.
[5] 陳玲. 科研院所科研信息化管理系統的設計與應用[J]. 數字技術與應用,2016 (9) :135-137.
[6] 吳江棟, 李偉華, 安喜鋒. 基于RBAC的細粒度訪問控制方法[J]. 計算機工程, 2008,34(20):52-54.endprint