posts - 10,comments - 2,trackbacks - 0

          網(wǎng)站:JavaEye 作者:liuwei1981 發(fā)表時(shí)間: 2007-08-22 09:38 此文章來(lái)自于 http://www.JavaEye.com
          聲明:本文系JavaEye網(wǎng)站原創(chuàng)文章,未經(jīng)JavaEye網(wǎng)站或者作者本人書(shū)面許可,任何其他網(wǎng)站嚴(yán)禁擅自發(fā)表本文,否則必將追究法律責(zé)任!
          原文鏈接: http://liuwei1981.javaeye.com/blog/115158

                     維護(hù)的這個(gè)軟件系統(tǒng)使用了一個(gè)比較復(fù)雜的系統(tǒng)權(quán)限管理系統(tǒng),原本的設(shè)計(jì)是將用戶對(duì)軟件的使用權(quán)限控制到以最末級(jí)的菜單,并根據(jù)公司組織機(jī)構(gòu)的設(shè)計(jì),上級(jí)組織單位可以將自身所獲得的權(quán)限繼續(xù)授權(quán)到自己的下級(jí)公司。

                 為了授權(quán)權(quán)限的操作簡(jiǎn)單話,不然每次都從幾百個(gè)菜單選項(xiàng)中選擇給該用戶授權(quán)的菜單權(quán)限,恐怕這個(gè)權(quán)限系統(tǒng)管理員就要崩潰了。:-),權(quán)限管理系統(tǒng)將權(quán)限分為了權(quán)限組,權(quán)限域,基本權(quán)限管理。


                權(quán)限組和權(quán)限域的區(qū)別我至今沒(méi)有太分的清楚,郁悶中····在不多的使用當(dāng)中(主要是設(shè)置測(cè)試用戶的權(quán)限)感覺(jué)上這兩種權(quán)限范圍設(shè)置是評(píng)級(jí)的,沒(méi)有誰(shuí)是誰(shuí)的上級(jí)的關(guān)系,不清楚當(dāng)初為什么設(shè)置成這樣,我用的主要是權(quán)限域的設(shè)置。


               給用戶授權(quán)下權(quán)限,前提是已經(jīng)有相應(yīng)的權(quán)限域設(shè)置。


             1.權(quán)限域設(shè)置:權(quán)限域需要相應(yīng)的設(shè)置編碼,并選擇該權(quán)限域包括的菜單權(quán)限。


             2.在設(shè)置好權(quán)限域后,就可以直接將該權(quán)限域授權(quán)到系統(tǒng)用戶。


             權(quán)限管理使用了數(shù)據(jù)庫(kù)信息管理,現(xiàn)在使用起來(lái)比較笨拙,不過(guò)由于最初的設(shè)置過(guò)于復(fù)雜,如果使用現(xiàn)在比較統(tǒng)一的xml文件配置,可能使用起來(lái)也不是很方便。


             每個(gè)菜單權(quán)限項(xiàng)都有一個(gè)自身的權(quán)限編碼,該系統(tǒng)的菜單全部分為三級(jí),編碼規(guī)范為:一級(jí)菜單編碼_二級(jí)菜單編碼_三級(jí)菜單編碼。這樣,在授權(quán)權(quán)限的時(shí)候可以直接將一級(jí)菜單授權(quán),用戶相應(yīng)的也獲得該一級(jí)菜單下所有功能的使用權(quán)。


              用戶登錄成功后系統(tǒng)會(huì)將該用戶的合法權(quán)限值壓到一個(gè)集合中,放到sessin對(duì)象里。


             權(quán)限的控制在系統(tǒng)的頁(yè)面和后臺(tái)控制類都有實(shí)現(xiàn)。頁(yè)面使用了上一篇提到的頁(yè)面邏輯標(biāo)簽實(shí)現(xiàn)控制,在顯示該頁(yè)面之前,控制類使用了個(gè)系統(tǒng)框架提供的公共權(quán)限控制類將該用戶的權(quán)限值壓到頁(yè)面值中。


            在調(diào)用該功能之前,控制類現(xiàn)會(huì)判斷該用戶的權(quán)限,有一個(gè)通用類,將該功能的權(quán)限和當(dāng)前的用戶對(duì)象作為參數(shù)傳入,該類會(huì)判斷在用戶的權(quán)限集合中是否包括該權(quán)限,以決定是否繼續(xù)執(zhí)行該功能流程。


            這個(gè)系統(tǒng)的權(quán)限管理部分就是這么多了,下一篇講講這個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)管理部分。維護(hù)的這個(gè)軟件系統(tǒng)使用了一個(gè)比較復(fù)雜的系統(tǒng)權(quán)限管理系統(tǒng),原本的設(shè)計(jì)是將用戶對(duì)軟件的使用權(quán)限控制到以最末級(jí)的菜單,并根據(jù)公司組織機(jī)構(gòu)的設(shè)計(jì),上級(jí)組織單位可以將自身所獲得的權(quán)限繼續(xù)授權(quán)到自己的下級(jí)公司。


                 為了授權(quán)權(quán)限的操作簡(jiǎn)單話,不然每次都從幾百個(gè)菜單選項(xiàng)中選擇給該用戶授權(quán)的菜單權(quán)限,恐怕這個(gè)權(quán)限系統(tǒng)管理員就要崩潰了。:-),權(quán)限管理系統(tǒng)將權(quán)限分為了權(quán)限組,權(quán)限域,基本權(quán)限管理。


                權(quán)限組和權(quán)限域的區(qū)別我至今沒(méi)有太分的清楚,郁悶中····在不多的使用當(dāng)中(主要是設(shè)置測(cè)試用戶的權(quán)限)感覺(jué)上這兩種權(quán)限范圍設(shè)置是評(píng)級(jí)的,沒(méi)有誰(shuí)是誰(shuí)的上級(jí)的關(guān)系,不清楚當(dāng)初為什么設(shè)置成這樣,我用的主要是權(quán)限域的設(shè)置。


               給用戶授權(quán)下權(quán)限,前提是已經(jīng)有相應(yīng)的權(quán)限域設(shè)置。


             1.權(quán)限域設(shè)置:權(quán)限域需要相應(yīng)的設(shè)置編碼,并選擇該權(quán)限域包括的菜單權(quán)限。


             2.在設(shè)置好權(quán)限域后,就可以直接將該權(quán)限域授權(quán)到系統(tǒng)用戶。


             權(quán)限管理使用了數(shù)據(jù)庫(kù)信息管理,現(xiàn)在使用起來(lái)比較笨拙,不過(guò)由于最初的設(shè)置過(guò)于復(fù)雜,如果使用現(xiàn)在比較統(tǒng)一的xml文件配置,可能使用起來(lái)也不是很方便。


             每個(gè)菜單權(quán)限項(xiàng)都有一個(gè)自身的權(quán)限編碼,該系統(tǒng)的菜單全部分為三級(jí),編碼規(guī)范為:一級(jí)菜單編碼_二級(jí)菜單編碼_三級(jí)菜單編碼。這樣,在授權(quán)權(quán)限的時(shí)候可以直接將一級(jí)菜單授權(quán),用戶相應(yīng)的也獲得該一級(jí)菜單下所有功能的使用權(quán)。


              用戶登錄成功后系統(tǒng)會(huì)將該用戶的合法權(quán)限值壓到一個(gè)集合中,放到sessin對(duì)象里。


             權(quán)限的控制在系統(tǒng)的頁(yè)面和后臺(tái)控制類都有實(shí)現(xiàn)。頁(yè)面使用了上一篇提到的頁(yè)面邏輯標(biāo)簽實(shí)現(xiàn)控制,在顯示該頁(yè)面之前,控制類使用了個(gè)系統(tǒng)框架提供的公共權(quán)限控制類將該用戶的權(quán)限值壓到頁(yè)面值中。


            在調(diào)用該功能之前,控制類現(xiàn)會(huì)判斷該用戶的權(quán)限,有一個(gè)通用類,將該功能的權(quán)限和當(dāng)前的用戶對(duì)象作為參數(shù)傳入,該類會(huì)判斷在用戶的權(quán)限集合中是否包括該權(quán)限,以決定是否繼續(xù)執(zhí)行該功能流程。


            這個(gè)系統(tǒng)的權(quán)限管理部分就是這么多了,下一篇講講這個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)管理部分。




          《 總結(jié)一下維護(hù)了一年的一個(gè)軟件系統(tǒng)的軟件體系(四) 》 的評(píng)論也很精彩,歡迎您也添加評(píng)論。查看詳細(xì) >>





          JavaEye推薦
          上海樂(lè)福狗信息技術(shù)有限公司:誠(chéng)聘技術(shù)經(jīng)理和開(kāi)發(fā)工程師
          免費(fèi)下載IBM社區(qū)版軟件--它基于開(kāi)放的標(biāo)準(zhǔn),支持廣泛的開(kāi)發(fā)類型,讓您的開(kāi)發(fā)高效自主!
          京滬穗蓉四地免費(fèi)注冊(cè),SOA技術(shù)高手匯聚交鋒.
          上海:優(yōu)秀公司德比:高薪誠(chéng)聘 資深Java工程師
          廣州:優(yōu)易公司:誠(chéng)聘Java工程師,開(kāi)發(fā)經(jīng)理
          上海:尤恩斯國(guó)際集團(tuán):誠(chéng)聘開(kāi)發(fā)工程師
          北京:優(yōu)秀公司NHNChina招聘:WEB開(kāi)發(fā),系統(tǒng)管理,JAVA開(kāi)發(fā), DBA



          文章來(lái)源: http://liuwei1981.javaeye.com/blog/115158
          posted on 2007-08-22 09:38 皇馬嘯西風(fēng) 閱讀(163) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 桦南县| 阿克陶县| 马边| 新宾| 绿春县| 交城县| 遵义县| 彰化县| 都安| 晋江市| 长丰县| 凌云县| 那坡县| 桐柏县| 横峰县| 高邮市| 原平市| 山阴县| 西安市| 曲靖市| 平江县| 普兰店市| 大埔区| 万州区| 玉环县| 景东| 洞口县| 肥乡县| 安阳县| 礼泉县| 句容市| 津市市| 尼木县| 武强县| 阳谷县| 柳州市| 温泉县| 张家川| 香港| 大庆市| 黄山市|