郅芬香++王留芳
摘 要 在網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,傳統(tǒng)的紙質(zhì)辦公方式已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足時代發(fā)展的需求,OA的出現(xiàn)很好的解決了這樣的問題,它不僅能夠處理公司內(nèi)部的事務(wù)性工作、輔助管理,還提高了辦公效率。其中,一個好的權(quán)限管理設(shè)計顯得尤為重要。
關(guān)鍵詞 身份驗證;權(quán)限設(shè)計;JSP
中圖分類號:TIll7 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-7597(2014)19-0035-01
企業(yè)將OA系統(tǒng)作為日常辦公的平臺以后,公司的大部分事務(wù)和流程都需要通過OA來辦理,安全性問題便隨之而來。OA辦公系統(tǒng)的安全涉及多個方面,典型包括的數(shù)據(jù)安全、硬件網(wǎng)絡(luò)的安全、身份認(rèn)證安全等。它們之間相互關(guān)聯(lián)影響,如:身份認(rèn)證安全出現(xiàn)問題,非法用戶的非法入侵系統(tǒng)導(dǎo)致數(shù)據(jù)的丟失和泄露,硬件的毀壞導(dǎo)致數(shù)據(jù)的損失,網(wǎng)絡(luò)不安全導(dǎo)致數(shù)據(jù)傳輸過程中的數(shù)據(jù)泄露。身份認(rèn)證安全是指通過一系列的技術(shù)手段和相關(guān)的措施,確保用戶在登錄認(rèn)證和應(yīng)用中的安全性和合法性。本文的論述重點為系統(tǒng)的權(quán)限設(shè)計和實現(xiàn),尋找一種有效的權(quán)限匹配算法,實現(xiàn)身份認(rèn)證。
1 算法實現(xiàn)
1.1 使用工具
1) 操作系統(tǒng)采用WINDOWS平臺。
2) 數(shù)據(jù)庫管理系統(tǒng)采用SQLServer 2005。
3) WEB服務(wù)器采用Tomcat。
4) 程序設(shè)計采用JSP技術(shù)。
1.2 實現(xiàn)過程
1.2.1 算法的基本思想
OA中將權(quán)限分為模塊級權(quán)限和數(shù)據(jù)級權(quán)限,分別從橫向和縱向2個維度來控制用戶權(quán)限,以適應(yīng)不同的情況。
模塊級權(quán)限主要控制模塊、菜單、操作等,比如人力資源、行政管理等模塊的顯示,以及查看、添加等操作按鈕的顯示;
數(shù)據(jù)級權(quán)限主要控制列表中數(shù)據(jù)的查看權(quán)限,分為全部、指定部門、本部門、個人4種。
1.2.2 數(shù)據(jù)庫設(shè)計
針對權(quán)限設(shè)計,數(shù)據(jù)庫中共用到6張表,分別是:模塊/權(quán)限表、職位表、用戶表、職位權(quán)限表、用戶權(quán)限表、用戶權(quán)限屏蔽表。
模塊/權(quán)限表包括模塊/權(quán)限編碼、模塊/權(quán)限名稱、模塊/權(quán)限值等;職位表包括職位名稱、所屬部門、管理范圍等;其中,管理范圍包括:個人、本部門、指定部門、全體;用戶表包括用戶名、密碼、職位等;職位權(quán)限表包括職位ID、權(quán)限ID;用戶權(quán)限表包括用戶ID、權(quán)限ID;例如,2個職位相同的用戶A和用戶B,對應(yīng)的職位權(quán)限是相同的,當(dāng)需要用戶A比用戶多“刪除”權(quán)限時,只需要在用戶權(quán)限屏蔽表中增加一條記錄,該記錄的值為:用戶A的ID、“刪除”權(quán)限的ID;用戶權(quán)限屏蔽表包括用戶ID、權(quán)限ID;與用戶權(quán)限表相反,當(dāng)需要用戶A比用戶B少某項權(quán)限的時候,只需要在該表增加一條記錄,該記錄的值為:用戶A的ID、“刪除”權(quán)限的ID,即可。
1.2.3 程序設(shè)計
當(dāng)用戶登錄OA時,需要先輸入用戶名、密碼、驗證碼等信息,系統(tǒng)獲取數(shù)據(jù)庫中是否存在與之匹配的用戶名和密碼,并且是否允許登錄;當(dāng)驗證通過后,再判斷該用戶是否是第一次登錄,當(dāng)?shù)谝淮蔚卿洉r,提示必須修改初始密碼。否則,系統(tǒng)取出該用戶對應(yīng)的相關(guān)權(quán)限值,并保存到session中,跳轉(zhuǎn)到OA主界面。
//獲取用戶輸入的用戶名、密碼等信息
String username=request.getParameter(“name”);
String password=request.getParameter(“pwd”);……
//查找數(shù)據(jù)庫中是否存在與之匹配的用戶信息
if(userID<0||!password.equals(password2)||ifLogin==0) return;
//驗證通過后,將用戶關(guān)鍵信息保存到服務(wù)器的session中,以便系統(tǒng)調(diào)用
session.setAttribute(“userID”, String.valueOf(userID));
session.setAttribute(“username “, username);
session.setAttribute(“permit”,permit);
session.setAttribute(“range”,String.valueOf(range));
//判斷用戶是否是第一次登錄
if(ifFirstLogin==1)
response.sendRedirect(“person/console/pass/setFirst.jsp”);
else
response.sendRedirect(“frame.jsp”);
進(jìn)入OA系統(tǒng)以后,當(dāng)用戶點擊某個操作按鈕時,需要判斷該用戶是否具有該按鈕的操作權(quán)限,系統(tǒng)首先通過調(diào)用session.getAttribute(“permit”)獲取該登錄用戶session中保存的permit值,然后調(diào)用permit.indexOf(“***”)!=-1來判斷該用戶是否具有操作該按鈕的權(quán)限,如果有該權(quán)限,則不提示;否則,提示“您無此權(quán)限!”。
if(!permit.indexOf(“***”)!=-1)
{
out.print(“”);
}
2 總結(jié)
論文提出的權(quán)限控制和算法,能夠有效控制用戶的非法登錄,以及對資源的訪問,實現(xiàn)了OA系統(tǒng)中的權(quán)限控制,目前該方法已經(jīng)應(yīng)用到所開發(fā)的OA辦公系統(tǒng)中,使用多年,取得了較好的成效。
參考文獻(xiàn)
[1]牛丹梅,丁一.OA系統(tǒng)中基于角色的安全訪問控制設(shè)計[J].信息安全,2009,25(7):59-61.
[2]徐江峰,劉恒強(qiáng).基于角色和加密技術(shù)的訪問控制研究[J].微計算機(jī)信息,2008,1(3):36-38.
[3]陳建斌,劉文宏.辦公自動化系統(tǒng)中權(quán)限模型的設(shè)計[J].紡織高?;A(chǔ)科學(xué)學(xué)報.2006,19(1):85-89.
[4]SANDHU R S.The Typed Access Matrix Model[R].Oakland,California:Proc IEEE Symposium on Research in Security and Privacy,1992.
作者簡介
郅芬香(1983-),女,漢族,河南鶴壁人,碩士,講師,主要研究領(lǐng)域:數(shù)據(jù)挖掘,CDN。endprint