999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Web的SVN權限管理系統的設計與實現

2013-08-16 01:08:18張存超任洪敏
網絡安全與數據管理 2013年11期
關鍵詞:用戶管理

張存超,任洪敏

(上海海事大學 信息工程學院,上海 201306)

隨著軟件開發規模的不斷擴大和開發復雜性的不斷提高,軟件配置管理[1]在軟件工程領域中的地位大大提高。軟件配置管理SCM(Software Configuration Management)是一種標識、組織和控制修改的技術,它確保了正確實現變更并將變更報告給相關人員。把軟件配置管理應用于整個軟件開發過程,提高了軟件開發的效率。

軟件配置管理活動要求有明確的角色、職責和權限的定義,一般地,組織內的所有人員應當根據系統賦予的權限來執行相應動作。所以一款良好的軟件配置管理工具應當能對角色權限進行精確的解析,SVN(Subversion)允許權限管理員手工編輯各版本庫[2]的權限配置文件,實現權限管理。然而,隨著用戶數量不斷增加,依靠極少數管理員手工維護配置文件將困難重重,這體現在用戶數量增加,使得權限配置文件內容過多,增加了管理員理解和管理難度,不允許普通用戶做權限配置,而往往管理員數量卻又極為有限;依靠手工操作配置文件易引入冗余及其他錯誤信息,無法保證文件內容的簡潔性和正確性;缺少友好簡易的可視化管理界面等。

本文基于SVN權限配置文件,設計和實現一個基于Web的SVN權限管理系統,提供如下功能:獨立開發權限解析模塊,精確解析用戶在所有版本庫(分布式的多個版本庫亦可)中的權限信息,提供多種視圖機制查看和管理解析結果;檢測和避免冗余和錯誤信息,保持權限配置文件的簡潔;允許用戶分級授權[3],使得項目中每個成員都能充當SVN權限管理者,更好地配合項目開發。

1 SVN及其管理工具的研究現狀

SVN是一個開源版本控制系統,管理隨時間改變的數據,這些數據放置在一個版本庫[2](Repository)中。版本庫會記錄每一次文件和目錄的改動,可以把數據恢復到舊的版本,或是瀏覽數據的變動歷史。

SVN的工作流程為:用戶通過客戶端向服務器端發出請求,通過身份驗證后,可以向SVN服務器的指定版本庫目錄提交工作拷貝,或者從版本庫中取出所需的文檔 或 代 碼 等 數 據 。 在 做 諸 如 檢 出 (Checkout)、 更 新(Update)、提交(Commit)等各項操作時,仍需進行權限驗證,檢查用戶對當前目錄中的文件是否具有讀寫權限。

權限驗證作為SVN服務端的工作,貫穿于SVN操作的整個過程,傳統的Subversion權限管理靠人工維護文本配置文件來完成,耗時耗力,易出錯。近年來國內外都在研發SVN服務端的管理工具。其中,國外VisualSVN Server[4]集成了 Subversion和 Apache,開始實現對 SVN的WEB管理,且其提供了包括權限管理在內的可視化界面,操作的友好性提高,但權限和用戶信息管理仍掌握在極少數經驗豐富的SVN服務器管理員手中;國內的SVN俱樂部開發的“SVN管家[5]”允許用戶注冊,遠程修改個人信息及查看個人權限,提供了基于版本庫級和基于目錄級的遠程權限設置等;開源軟件“Submin”提供了基于Web瀏覽器的SVN管理接口,功能包括用戶、用戶組的管理、路徑權限的設置等,兼容各種瀏覽器,界面更加優化。

然而,因權限管理工作難度的限制,上述工具的使用者仍是少數具備相關知識的專門管理員,使得工具使用的普遍性較低。本系統則致力于優化SVN權限管理,一方面提供不同視圖角度更為全面的權限信息,提高交互性;另一方面支持分級授權,將大大降低權限管理的難度。

2 SVN權限管理系統的設計

SVN權限管理系統設計框架如圖1所示。

圖1 分布式權限管理設計框架

系統總體分為兩大模塊:權限解析模塊和權限信息維護模塊。前者用于讀取和解析多個版本庫(分布式的版本庫亦可)配置文件,并將各文件解析結果整合,發送到客戶端瀏覽器;后者涉及對權限配置文件的維護,包括對組信息和權限規則的修改,還包括對冗余信息的檢測和避免。此模塊所做操作最終將更新到各配置文件中。

2.1 SVN權限解析模塊的設計

傳統上,SVN客戶端與服務端交互的方式是,用戶在客戶端輸入用戶名和版本庫路徑,提交至服務端,服務端則解析此用戶對路徑是否有讀權限,若有則將路徑下的內容(包括文件和文件夾)顯示給用戶,否則告知用戶無權訪問。

本系統在權限解析方面將做如下改進:客戶端僅需給定用戶名,無需給定版本庫路徑,而靠權限解析模塊解析出多個相關版本庫中用戶有權限的所有路徑信息(包括路徑名稱和對路徑具有的權限)。

2.1.1 權限配置文件簡介

SVN的權限配置信息保存在一個文本文件中(默認路徑是各版本庫“conf”子目錄下的“authz”文件)。以下為權限文件部分內容(‘#’表示單行注釋):

權限配置文件內容包含組定義和權限規則定義。組定義以“[groups]”為開始標記,定義格式為“組名=用戶名1,用戶名2……”,組與組之間允許嵌套;SVN采取基于版本庫路徑[6]的顯示方式定義用戶權限。對于版本庫“Repo”下的“SubPath”子路徑,用戶“user”有只讀權限,組“group”有讀寫權限(‘@’為組標識),其他用戶(‘*’指代除“user”和“group”之外的其他用戶,也包括匿名用戶)則無任何權限。此外,用戶權限具有“繼承性”,即若子路徑下未改變用戶權限,則用戶對子路徑將繼承對父路徑擁有的權限。 如 user對“[Repo:/SubPath/abc]”有從“[Repo:/SubPath]”繼承來的讀權限。SVN授權的另一個特點是權限之間的“覆蓋”,如“user=w”將覆蓋“user=r”,使得“user3”對“[Repo:/SubPath/abc]”僅有寫權限。

2.1.2 權限解析類圖設計

根據2.1.1節內容,設計的權限解析模塊類圖如圖2(僅給出權限解析所需要的類、成員變量和方法等)所示。

其中,“User”類和 “Group”類分別代表用戶和組;“AccessLevel”類代表權限,且只允許四種權限:Read(只讀)、Write(只寫)、ReadAndWrite(讀寫)和 NoneAccess(無讀 寫 權 限 );“AccessRule” 類 代 表 一 條 權 限 規 則 (如“user=rw”);“RepoPath”類代表版本庫路徑,定義格式為“[版本庫名稱:/子路徑]”;“AccessRulesUnit”類代表一條版本庫路徑及其下的若干規則集合(例如2.1.1節配置文件內容中的部分),是反映“基于路徑授權”的基本單元;“AccessManager”類是權限管理類,包括了權限解析和管理的幾乎所有方法。執行“AccessManager”構造函數會將配置文件中所有組定義封裝到“groupList”中,將權限規則定義封裝到“unitList”中。

2.1.3 權限解析的核心方法實現

“AccessManager”類中的“parseRootPaths”和“parseLevel”方法是權限解析的核心方法。其中“parseRootPaths”方法對給定的用戶(或組),將解析出其在配置文件中有權限的所有版本庫路徑(鑒于權限在路徑間的繼承性,相同版本庫下的路徑集合只需解析出最頂層路徑即可);“parseLevel”方法用于判斷指定用戶(或組)對指定版本庫路徑具有的權限。

圖2 權限解析類圖

以上兩個方法能正確執行的前提條件是已調用“AccessManager”中的“sortUnitList”方法(作為權限解析前的預處理工作, 見圖 1), 使得在 “unitList” 中所有“AccessRulesUnit”對象可以“按序”排列,以最大程度降低權限解析的難度。這里的 “按序”規則如下:從“unitList” 中 取 出 所 有 “AccessRulesUnit” 對 象 中 的“RepoPath”成員,使得所有“RepoPath”按版本庫名稱分類存放,并保證同一版本庫下子路徑排列在父路徑之前。一種路徑“按序”排列的示例為:

執行上述兩方法可確保在做權限解析時,最壞情況下“unitList”至多被迭代訪問一次即可(T(n)=O(n),n為 unitList的長度),相比未采取優化策略時(T(n)至少為 O(n2)),大大降低了解析難度,避免了對“unitList”多次迭代訪問。

2.2權限信息維護模塊的設計

2.2.1 分級授權和權限撤銷

傳統上權限配置都由專門的SVN管理員完成,而本系統所做改進則是實現了分級配置、分級授權和權限撤銷。

分級授權是使權限配置工作分散化的做法,目的是降低管理員的壓力,也使各用戶充分參與其中,更好地配合軟件開發過程。本系統通過分級授權,使得不用依靠專門的SVN管理員,用戶可將自己對路徑的訪問權限授予他人(所有用戶/組對任何人都是可見的,但并非任何人都能修改用戶/組信息),每個項目組成員都可成為權限管理者,從根本上簡化了SVN權限管理工作。

對于權限的撤銷,為了防止配置混亂,用戶的權限僅能由授予者撤銷,若在此之前此用戶已將權限授予他人,則做權限的級聯撤銷。

2.2.2 冗余權限規則的避免

授權操作頻繁,預示著權限文件內容的不斷增加,隨之冗余權限規則也極易出現,考慮以下情形:

(1)重復定義引起的冗余。如在2.1.1節配置文件內容中添加了如下規則:“user=r”或者“@newGroup=r(組‘newGroup’中包含了‘user’用戶)”。

(2)權限覆蓋引起的冗余 (見 2.1.1節配置文件內容,“user=w”覆蓋了“user=r”,使后者成為無效冗余規則)。

為了保持權限文件內容的簡潔清晰,優化查詢權限的效率,避免引入冗余信息十分重要。本文采取的方法是,授權之前先調用“AccessManager”中的“parseLevel”方法檢查被授權的用戶對路徑是否已具有相同權限,有則無需授權。

3 SVN權限管理系統界面管理

本系統登錄后的界面如圖3和圖4所示(當前登錄者為擁有系統最多權限的管理員)。

圖3 權限管理系統界面——用戶/組視圖

圖4 權限管理系統界面——版本庫路徑視圖

前臺界面主要使用了JQueryEasyUI(一組基于jQuery 的 UI插 件 集 合 )中 的 Treegrid、Datagrid、Tabs、Dialog等組件,提供了清晰友好的交互界面。

本系統前臺界面所做改進是提供了兩種視圖機制管理用戶權限,包括用戶/組視圖和版本庫路徑視圖。圖3給出了用戶/組視圖,針對當前選中的用戶/組,經解析模塊,將給出其有權限的版本庫頂層路徑集合及對應的權限。圖4是版本庫路徑視圖,針對選中的版本庫路徑,解析出對此路徑有權限的所有用戶/組及對應權限。兩種視圖機制下均允許用戶進行權限配置(使用分級授權的思想),提高了系統與用戶的交互性,降低了權限管理的難度。

傳統SVN用戶權限管理是通過維護一個文本配置文件來完成的,用戶人數的增多使得依靠少數管理員人工理解和維護配置文件困難重重。本文在深入理解SVN權限配置的基礎上,設計和實現了一個基于Web的SVN權限管理系統,針對用戶提供更加全面的權限信息;提出使用基于角色的分級授權機制,各個項目組可獨立管理本組用戶權限;前臺提供基于用戶/組和基于版本庫路徑兩種視圖機制,使權限管理更加簡單直觀。

[1]王強,曹漢平,賈素玲.IT軟件項目管理[M].北京:清華大學出版社,2005.

[2]Ben Collins-Sussman, Brian W.Fitzpatrick, C.Michael Pilato.Subversion權威指南(針對Subversion 1.7)[M/OL].2004.

[3]郭軍.基于角色的訪問控制分級授權管理的研究[D].西安:西安電子科技大學,2012.

[4]紀洲鵬,趙斐斐.可視化版本控制在.Net三層架構開發中的應用[J].軟件導刊,2013(1):89-90.

[5]SVN Club.SVN管家(Windows版本)項目[EB/OL].http://www.svnclub.com,[2012-02].

[6]曾紹庚.Linux SVN服務器權限精確控制的實現 [J].信息與電腦(理論版),2011(7):163-164.

猜你喜歡
用戶管理
棗前期管理再好,后期管不好,前功盡棄
今日農業(2022年15期)2022-09-20 06:56:20
加強土木工程造價的控制與管理
如何加強土木工程造價的控制與管理
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
“這下管理創新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
人本管理在我國國企中的應用
現代企業(2015年8期)2015-02-28 18:54:47
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 成人在线观看不卡| 国产一在线观看| 亚洲中文在线视频| 四虎影视国产精品| 亚洲午夜久久久精品电影院| 国产三级国产精品国产普男人| 国产成人精品三级| 免费国产黄线在线观看| 亚洲VA中文字幕| 欧洲亚洲一区| 色网站在线视频| 在线日韩一区二区| 久草网视频在线| 国产第二十一页| 91精品国产福利| 亚洲美女久久| 国产第八页| 在线国产资源| 精品无码日韩国产不卡av | 一级一级一片免费| 日韩123欧美字幕| 亚洲精品少妇熟女| 麻豆AV网站免费进入| 亚洲欧美日韩另类| 久久五月天国产自| 国产成人综合亚洲欧美在| 女人爽到高潮免费视频大全| 久久国产香蕉| 亚洲中文在线视频| 欧美激情一区二区三区成人| 老司国产精品视频91| 99这里只有精品免费视频| 久久精品人人做人人爽电影蜜月| 日本一区二区不卡视频| 欧美激情,国产精品| 中文字幕不卡免费高清视频| 国产欧美日韩另类精彩视频| 成人永久免费A∨一级在线播放| 亚洲毛片网站| 日韩精品一区二区深田咏美| 久久精品无码一区二区国产区| 亚洲欧美日韩中文字幕一区二区三区| 在线一级毛片| 婷婷激情亚洲| 亚洲欧美日韩天堂| 中文字幕无码电影| 亚洲中文无码av永久伊人| a级毛片免费看| 久久久久九九精品影院| 亚洲成人动漫在线| 亚洲天堂777| AV不卡在线永久免费观看| 亚洲成a∧人片在线观看无码| 国产黑丝视频在线观看| 久热精品免费| 精品一区二区三区水蜜桃| 少妇精品网站| 国产一级在线观看www色 | 97在线碰| 在线播放国产一区| 国产亚洲美日韩AV中文字幕无码成人 | 好吊妞欧美视频免费| 久久91精品牛牛| 亚洲欧美一区二区三区图片| 亚洲Av综合日韩精品久久久| a欧美在线| 亚洲欧美另类久久久精品播放的| 综合久久五月天| 欧美国产精品拍自| 亚洲精品视频在线观看视频| 国产乱人伦精品一区二区| 亚洲人成影院午夜网站| 久久国产高清视频| 国产极品粉嫩小泬免费看| 国产微拍精品| 亚洲人成网站在线观看播放不卡| 久久综合五月婷婷| 四虎亚洲精品| 国产男女免费完整版视频| 国产三级毛片| 亚洲精品在线91| 亚洲视频四区|