積累,創造,分享!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 13 Stories :: 26 Comments :: 0 Trackbacks
          權限控制是每個項目必不可少的一塊。在最近的一個MVC模式(Struts)的實踐當中,在進行權限訪問控制時做了一個這樣的嘗試,即在action當中進行權限控制,它所控制的粒度可以到用戶的每個操作上,比如說增刪改查,當然,我這里所說的權限是控制到功能級的,系統還沒有復雜到對實例級別的控制。
          具體的例子如下:先定義一個BaseDispatchAction,此類繼承Struts當中的DispatchAction,其中有個權限檢查的方法  
          protected boolean checkPermit(HttpServletRequest request, String funcId,String operationId)

          funcId指的是當前的欄目,operationId為當前欄目的功能操作ID,將功能ID與操作ID在checkPermit方法當中與當前用戶所在的角色資源進行判斷,看是否符合當前操作。
          比如具體到一個新增操作,可以在相對應的功能操作表中定義對應的操作ID。在接下來的具體某個action當中,先繼承BaseDispatchAction,比如用戶管理模塊的UserManangeAction。然后在新增方法當中加入如下代碼控制,   
          1//判斷是否有此方法的操作權限
          2String funcId = httpServletRequest.getParameter("funcId");
          3if (checkPermit(httpServletRequest, funcId, Constants.QUERY)) {
          4   return forwardError(actionMapping, httpServletRequest,"error.checkPermit");
          5}

          6

          這樣,對具體的某個功能操作就進行了很好的控制。
          posted on 2005-08-15 13:41 nighthawk 閱讀(326) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 平山县| 岗巴县| 山西省| 莱西市| 乳源| 巨野县| 禄丰县| 壤塘县| 民丰县| 肇源县| 遂昌县| 青岛市| 中牟县| 高青县| 铁岭市| 双鸭山市| 虞城县| 深圳市| 息烽县| 伊川县| 翁牛特旗| 太仓市| 留坝县| 茂名市| 汾西县| 始兴县| 敦化市| 页游| 郴州市| 顺义区| 休宁县| 井研县| 岫岩| 神农架林区| 九台市| 桐城市| 遂川县| 西峡县| 岗巴县| 定州市| 宝清县|