欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
基于Struts的權限實(shí)現
一:概念介紹

1:)資源
可以使用的系統資源.比如注冊用戶(hù)是一種資源,修改用戶(hù)信息也是一種資源.
資源在系統中呈現為一棵樹(shù).假如用戶(hù)管理是一個(gè)節點(diǎn).用戶(hù)注冊,用戶(hù)信息
修改為用戶(hù)管理的葉子。葉子具有不可分割性.

2:)角色
綁定可操作資源的集合。
比如系統管理員,可以使用全部資源.
一般用戶(hù),可以注冊和修改查看自己的信息.
角色可以有依賴(lài)角色。也就是說(shuō)現在系統中存在
RoleA,RoleB,RoleC ,RoleD 四種角色.
RoleD 倚賴(lài)RoleA
假設一個(gè)用戶(hù)的角色是RoleD.
根據倚賴(lài)關(guān)系。默認有RoleA 的可使用資源.

3:)用戶(hù)
系統中的使用者,因為角色可以倚賴(lài),所以一個(gè)用戶(hù)只有一種角色.

二:資源的分配
上述三個(gè)概念之間的綁定關(guān)系為用戶(hù)綁定一個(gè)角色,角色綁定若干資源.
角色綁定資源有兩種綁定,一種是綁定葉子,一種綁定節點(diǎn)。綁定節點(diǎn)有
兩種一種只綁定節點(diǎn)下的葉子,一種綁定節點(diǎn)下所有的葉子.在系統中權
限的分配需要做到一個(gè)角色可以訪(fǎng)問(wèn)整個(gè)資源樹(shù)中的任意節點(diǎn)和葉子的組合.

三:資源樹(shù)的構造
我們使用namespace的方式去構造一棵樹(shù).根節點(diǎn)為空。
下面形如:sysytem.user.useradd,system.department.add,system.common
上面的可以理解為system是一個(gè)節點(diǎn),并有兩個(gè)子節點(diǎn)user,department,
一個(gè)葉子common

四:Struts中的資源標識
在Struts中一個(gè)Action的配置通常如下:

<action path="/editSubscription"
type="org.apache.struts.webapp.example.EditSubscriptionAction"
attribute="subscriptionForm"
scope="request"
validate="false">
<forward name="failure" path="/mainMenu.jsp"/>
<forward name="success" path="/subscription.jsp"/>
</action>

為了使沒(méi)一個(gè)Action綁定到一個(gè)跟節點(diǎn)下,我們加一個(gè)選項把上面的配置修改為
<action path="/editSubscription"
type="org.apache.struts.webapp.example.EditSubscriptionAction"
attribute="subscriptionForm"
scope="request"
rights="system.user"
validate="false">
<forward name="failure" path="/mainMenu.jsp"/>
<forward name="success" path="/subscription.jsp"/>
</action>

為了在xml parse的時(shí)候可以加載上面的配置,我們需要修改一下Struts的源代碼
修改org/apache/struts/config/ActionConfig
增加如下代碼

protected String rights="common";

public String getRights(){
return this.rights;
}

public void setRights(String rights){
if (configured) {
throw new IllegalStateException("Configuration is frozen");
}
this.rights=rights;
}

假如修改成功后我們把ActionMapping 打印出來(lái)會(huì )看到相關(guān)的配置


五:權限分配的實(shí)現
1:)實(shí)現角色資源的綁定
在我的實(shí)現中我使用xml文件去配置如下:
<role name="01">
<resource-list>
<resource name="test" url="test.jsp" menu="false"/>
<resource name="user" url="user.jsp" menu="true"/>
<!--綁定綁定一個(gè)葉子-->
</resource-list>
<node-list>
<node name="system.test" include="false">
<!--綁定綁定一個(gè)節點(diǎn)如果include為true綁定所有子葉子-->
</node-list>
</role>

2:)權限的判斷
這一部分有很多中實(shí)現方式,一種所有的Action繼承BaseAction
在BaseAction里面實(shí)現,并在沒(méi)一個(gè)Action里面去調用判斷.

另外一種交給Struts去判斷
org.apache.struts.action.RequestProcessor
里面有一個(gè)processActionPerform
調用Action的execute去執行Action
我們可以修改processActionPerform讓其在執行execute前先執行權限檢查
如果是這樣的話(huà),必須修改org.apache.struts.action.Action
讓一個(gè)方法去實(shí)現權限判斷.

如果使用第二種需要修改蠻多源代碼,不建議對Struts不熟悉的人使用

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
學(xué)Struts2從HelloWorld示例開(kāi)始
Pragmatic Struts
藍色天空(原創(chuàng )作品)
struts1 Action原理與配置
STRUTS 系列文章
Struts上傳總結
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久