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