Java Home

          Java技術修煉中...
          posts - 20, comments - 22, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          前段時間作了一個簡單的系統,其中涉及到后臺管理,當然也就遇到了權限驗證的問題,由于初次做J2EE項目,所有這些東西懂我來說都是個開始。
          對于權限驗證,如果程序由目錄劃分,如管理員訪問的頁面都放在admin下,這樣我們可以寫一個權限驗證的過濾器,然后配置admin目錄都要經過這個過濾器即可。這樣對于jsp頁面的權限驗證比較容易。但對于action(控制器類)就不好控制了,因為action是沒有目錄概念的,如我們訪問action的地址為:http://xxx/sample/ac1.action,同時如果使用http://xxx/sample/xx/xx/ac1.action同樣可以訪問,這是因為只要在這個項目目錄下,訪問的頁面如果為action則struts就會去查詢這個action名字對應的類,而不管前面的目錄結構。因此我們不能再用過濾器對管理員部分的action進行驗證。經過查看struts2的相關資料發現了攔截器這個有用的東西。通過struts2的配置文件的包管理功能和攔截器可以輕松的對指定的action做管理(攔截),如
          ===================================================
          <package name="user" extends="struts-default">
          ??<!-- 前臺用戶操作部分 -->
          ??<!-- 框架頁,顯示分類 -->
          ??<action name="queryCateForwardUI"
          ???class="com.topsoft.bookmanage.web.action.QueryCateForwardActionUI">
          ???<result>/mainPage.jsp</result>
          ??</action>
          ??? 。。。。。
          </package>
          <!-- 管理員操作部分 -->
          ?<package name="manager" extends="struts-default">
          ??<!-- 攔截器 -->
          ??<interceptors>
          ???<interceptor name="auth" class="com.topsoft.common.LogonInterceptor" />
          ???<interceptor-stack name="authStack">?
          ??????????????? <interceptor-ref name="auth"/>?
          ??????????????? <interceptor-ref name="paramsPrepareParamsStack"/>?
          ??????????? </interceptor-stack>?
          ??</interceptors>
          ??<!-- 默認執行的攔截器 -->
          ??<default-interceptor-ref name="authStack"/>
          ??<!-- 全局Action映射 -->
          ??<global-results>
          ???<result name="login" type="redirect">/managerLoginUI.action</result>
          ??</global-results>
          ??
          ??<!-- 后臺管理首頁面UI -->
          ??<action name="managerIndexUI"
          ???class="com.topsoft.bookmanage.web.action.ManagerIndexActionUI">
          ???<result>/admin/index.jsp</result>
          ??</action>
          ?。。。。。。
          </package>
          =================================================

          通過使用攔截器+過濾器可以完美解決權限驗證的問題。

          評論

          # re: Struts2下的用戶權限驗證問題解決方法  回復  更多評論   

          2007-06-06 19:36 by 匿名
          不懂struts2,沒怎么看懂,權限是在哪個action里面實現的?

          # re: Struts2下的用戶權限驗證問題解決方法  回復  更多評論   

          2007-06-08 11:34 by yidishui
          沒有使用過struts2,但是一直用webwork 其實兩個我覺得一樣!

          # re: Struts2下的用戶權限驗證問題解決方法  回復  更多評論   

          2007-06-13 22:36 by somebody(莫多泡泡)
          沒有目錄的概念?
          你說的是namespace吧。只要你設置了namespace,就只有通過你設置的namespace來訪問了。eg namespace="/admin" ,action name="listUser"

          那就只能通過 /admin/listUser.action來訪問了。

          # re: Struts2下的用戶權限驗證問題解決方法  回復  更多評論   

          2008-07-28 14:00 by 葉依萱
          沒怎么看懂,你有實例代碼嗎,如果方便的話。我想看下,謝謝.
          qq:746273084

          # re: Struts2下的用戶權限驗證問題解決方法  回復  更多評論   

          2008-10-18 17:55 by adam
          interceptor 在那呀

          # re: Struts2下的用戶權限驗證問題解決方法[未登錄]  回復  更多評論   

          2008-11-20 22:05 by moonandsun
          可能你能幫我
          加我qq :815266787
          共同學習.
          互相幫助.

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


          網站導航:
           
          主站蜘蛛池模板: 新野县| 周宁县| 荥经县| 赤峰市| 阜新市| 阳新县| 西贡区| 大连市| 德江县| 中西区| 通化市| 长丰县| 西贡区| 乌拉特中旗| 中阳县| 长葛市| 贵溪市| 九江市| 长海县| 鄂尔多斯市| 青神县| 商丘市| 沂源县| 南靖县| 邳州市| 乐东| 陆丰市| 成都市| 阳谷县| 天气| 舞阳县| 赤城县| 化州市| 大城县| 平塘县| 阳曲县| 长丰县| 黄陵县| 屏东市| 无锡市| 桐庐县|