Java Home

          Java技術(shù)修煉中...
          posts - 20, comments - 22, trackbacks - 0, articles - 0
            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
          前段時(shí)間作了一個(gè)簡(jiǎn)單的系統(tǒng),其中涉及到后臺(tái)管理,當(dāng)然也就遇到了權(quán)限驗(yàn)證的問(wèn)題,由于初次做J2EE項(xiàng)目,所有這些東西懂我來(lái)說(shuō)都是個(gè)開(kāi)始。
          對(duì)于權(quán)限驗(yàn)證,如果程序由目錄劃分,如管理員訪(fǎng)問(wèn)的頁(yè)面都放在admin下,這樣我們可以寫(xiě)一個(gè)權(quán)限驗(yàn)證的過(guò)濾器,然后配置admin目錄都要經(jīng)過(guò)這個(gè)過(guò)濾器即可。這樣對(duì)于jsp頁(yè)面的權(quán)限驗(yàn)證比較容易。但對(duì)于action(控制器類(lèi))就不好控制了,因?yàn)閍ction是沒(méi)有目錄概念的,如我們?cè)L問(wèn)action的地址為:http://xxx/sample/ac1.action,同時(shí)如果使用http://xxx/sample/xx/xx/ac1.action同樣可以訪(fǎng)問(wèn),這是因?yàn)橹灰谶@個(gè)項(xiàng)目目錄下,訪(fǎng)問(wèn)的頁(yè)面如果為action則struts就會(huì)去查詢(xún)這個(gè)action名字對(duì)應(yīng)的類(lèi),而不管前面的目錄結(jié)構(gòu)。因此我們不能再用過(guò)濾器對(duì)管理員部分的action進(jìn)行驗(yàn)證。經(jīng)過(guò)查看struts2的相關(guān)資料發(fā)現(xiàn)了攔截器這個(gè)有用的東西。通過(guò)struts2的配置文件的包管理功能和攔截器可以輕松的對(duì)指定的action做管理(攔截),如
          ===================================================
          <package name="user" extends="struts-default">
          ??<!-- 前臺(tái)用戶(hù)操作部分 -->
          ??<!-- 框架頁(yè),顯示分類(lèi) -->
          ??<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>
          ??<!-- 默認(rèn)執(zhí)行的攔截器 -->
          ??<default-interceptor-ref name="authStack"/>
          ??<!-- 全局Action映射 -->
          ??<global-results>
          ???<result name="login" type="redirect">/managerLoginUI.action</result>
          ??</global-results>
          ??
          ??<!-- 后臺(tái)管理首頁(yè)面UI -->
          ??<action name="managerIndexUI"
          ???class="com.topsoft.bookmanage.web.action.ManagerIndexActionUI">
          ???<result>/admin/index.jsp</result>
          ??</action>
          ?。。。。。。
          </package>
          =================================================

          通過(guò)使用攔截器+過(guò)濾器可以完美解決權(quán)限驗(yàn)證的問(wèn)題。

          評(píng)論

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法  回復(fù)  更多評(píng)論   

          2007-06-06 19:36 by 匿名
          不懂struts2,沒(méi)怎么看懂,權(quán)限是在哪個(gè)action里面實(shí)現(xiàn)的?

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法  回復(fù)  更多評(píng)論   

          2007-06-08 11:34 by yidishui
          沒(méi)有使用過(guò)struts2,但是一直用webwork 其實(shí)兩個(gè)我覺(jué)得一樣!

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法  回復(fù)  更多評(píng)論   

          2007-06-13 22:36 by somebody(莫多泡泡)
          沒(méi)有目錄的概念?
          你說(shuō)的是namespace吧。只要你設(shè)置了namespace,就只有通過(guò)你設(shè)置的namespace來(lái)訪(fǎng)問(wèn)了。eg namespace="/admin" ,action name="listUser"

          那就只能通過(guò) /admin/listUser.action來(lái)訪(fǎng)問(wèn)了。

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法  回復(fù)  更多評(píng)論   

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

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法  回復(fù)  更多評(píng)論   

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

          # re: Struts2下的用戶(hù)權(quán)限驗(yàn)證問(wèn)題解決方法[未登錄](méi)  回復(fù)  更多評(píng)論   

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新干县| 钦州市| 香港 | 安国市| 河北省| 漠河县| 高州市| 调兵山市| 丹巴县| 大邑县| 南郑县| 天祝| 德化县| 京山县| 若羌县| 武乡县| 榆社县| 肇东市| 洮南市| 南充市| 五华县| 诏安县| 沧州市| 乌鲁木齐县| 松阳县| 五原县| 岐山县| 绵竹市| 樟树市| 吉隆县| 文成县| 琼结县| 长葛市| 科技| 大名县| 额济纳旗| 越西县| 六盘水市| 黔西| 苗栗市| 三河市|