wake

          JSP權(quán)限控制(一)

          近幾天不是很忙,就想看看關(guān)于 WEB 方式 (Jsp) 后臺(tái)權(quán)限控制的設(shè)計(jì)實(shí)現(xiàn)問(wèn)題 , Google 搜了一下,一大堆的東西,當(dāng)看到頭大的時(shí)候決定自己先試著做一個(gè)簡(jiǎn)單例子。

          ?

          先推薦大家有時(shí)間看一下關(guān)于 RBAC 即角色訪(fǎng)問(wèn)控制 (Role Based? Access Control) 的相關(guān)文章,雖然已經(jīng)是個(gè)老話(huà)題了 , 但如果要在一個(gè)大的項(xiàng)目中實(shí)現(xiàn)權(quán)限控制的話(huà),最好還是按照這些文章中的設(shè)計(jì)去逐步實(shí)現(xiàn)。

          ?

          以下的設(shè)計(jì)只是一個(gè)簡(jiǎn)單的控制,可以應(yīng)用在一些小成本的項(xiàng)目中。也可能不是最好的解決方法,但旨在與大家交流及共享。各位見(jiàn)笑,閑話(huà)少續(xù),言歸正傳。

          ?

          我的設(shè)計(jì)思路是這樣的:

          ?

          1, 管理員用戶(hù)表中有個(gè)字段專(zhuān)門(mén)記錄每個(gè)用戶(hù)所擁有的權(quán)限。

          2, 權(quán)限和文件名對(duì)應(yīng),比如有個(gè)權(quán)限的名稱(chēng)叫新聞編輯,而與此編輯權(quán)限對(duì)應(yīng)的文件有: News_add.jsp,News_del.jsp,News.action 等,他們之間是一對(duì)多的關(guān)系。如下圖:


          p1.jpg


          ?

          如果還不明白,請(qǐng)繼續(xù)往下看:我的想法是這樣的 比如 a 用戶(hù)如果有新聞編輯的權(quán)限,那么在 a 用戶(hù)記錄權(quán)限的字段里就應(yīng)該記錄 New_add.jsp,News_del.jsp,News.acion 這些值。

          ?

          3 ,那么具體怎么對(duì)資源進(jìn)行控制呢?首先在用戶(hù)登陸后,將用戶(hù)的所以信息以對(duì)象的形式放入 Session 中。如將用戶(hù)對(duì)象 auser 放入到 session 中,則可用類(lèi)似

          AdminUser adminuser = (AdminUser) session.getAttribute("auser")

          adminuser.getUserPopedom()

          的方法將該用戶(hù)所擁有的權(quán)限字符取出來(lái),我們這里取出來(lái)的字符會(huì)是 New_add.jsp,News_del.jsp,News.acion 。那么在需要做控制的頁(yè)面首先利用

          String url = servletRequest.getRequestURI();

          url = url.substring(url.lastIndexOf("/") + 1, url.length());

          取出當(dāng)前頁(yè)的文件名,再將此文件名與該用戶(hù)的權(quán)限字符做比較,如果該文件名在權(quán)限字符中可以找到,則表明該用戶(hù)擁有此頁(yè)面操作的權(quán)限。


          今天先寫(xiě)到這里,明天把相關(guān)代碼給貼出來(lái)...

          posted on 2006-04-28 17:39 wake 閱讀(5895) 評(píng)論(2)  編輯  收藏

          Feedback

          # re: JSP權(quán)限控制(一) 2008-07-18 11:20 大帥

          對(duì)于一些的項(xiàng)目 的確是可行之策。 樓主說(shuō)的好?。。?! 明白了。感謝  回復(fù)  更多評(píng)論   

          # re: JSP權(quán)限控制(一) 2013-09-03 17:23 zzhandlyq

          收獲了不少  回復(fù)  更多評(píng)論   



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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 金坛市| 平舆县| 台山市| 郁南县| 墨玉县| 云浮市| 阳信县| 西乌珠穆沁旗| 江门市| 桐庐县| 芦山县| 宣武区| 上虞市| 新龙县| 临高县| 黎平县| 金沙县| 柳州市| 称多县| 万山特区| 拉孜县| 晋宁县| 郧西县| 晋中市| 河北省| 资中县| 周口市| 兖州市| 兰溪市| 荣昌县| 德惠市| 南华县| 锡林郭勒盟| 东乡族自治县| 万全县| 新建县| 大悟县| 美姑县| 蓬安县| 北海市| 罗山县|