麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

基于Struts的權(quán)限實現(xiàn)

2019-11-18 12:56:15
字體:
供稿:網(wǎng)友

  作者:孤魂一笑  
  
  
  一:概念介紹
  
  1:)資源
  可以使用的系統(tǒng)資源.比如注冊用戶是一種資源,修改用戶信息也是一種資源.
  資源在系統(tǒng)中呈現(xiàn)為一棵樹.假如用戶治理是一個節(jié)點.用戶注冊,用戶信息
  修改為用戶治理的葉子。葉子具有不可分割性.
  
  2:)角色
  綁定可操作資源的集合。
  比如系統(tǒng)治理員,可以使用全部資源.
  一般用戶,可以注冊和修改查看自己的信息.
  角色可以有依靠角色。也就是說現(xiàn)在系統(tǒng)中存在
  RoleA,RoleB,RoleC ,RoleD 四種角色.
  RoleD 倚賴RoleA
  假設(shè)一個用戶的角色是RoleD.
  根據(jù)倚賴關(guān)系。默認(rèn)有RoleA 的可使用資源.
  
  3:)用戶
  系統(tǒng)中的使用者,因為角色可以倚賴,所以一個用戶只有一種角色.
  
  二:資源的分配
  
  上述三個概念之間的綁定關(guān)系為用戶綁定一個角色,角色綁定若干資源.
  角色綁定資源有兩種綁定,一種是綁定葉子,一種綁定節(jié)點。綁定節(jié)點有
  兩種一種只綁定節(jié)點下的葉子,一種綁定節(jié)點下所有的葉子.在系統(tǒng)中權(quán)
  限的分配需要做到一個角色可以訪問整個資源樹中的任意節(jié)點和葉子的組合.
  
  三:資源樹的構(gòu)造
  
  我們使用namespace的方式去構(gòu)造一棵樹.根節(jié)點為空。
  下面形如:sysytem.user.useradd,system.department.add,system.common
  上面的可以理解為system是一個節(jié)點,并有兩個子節(jié)點user,department,
  一個葉子common
  
  四:Struts中的資源標(biāo)識
  
  在Struts中一個Action的配置通常如下:
  
  <action path="/editSubscr  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>
  
  為了使沒一個Action綁定到一個跟節(jié)點下,我們加一個選項把上面的配置修改為
  <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的時候可以加載上面的配置,我們需要修改一下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 打印出來會看到相關(guān)的配置
  
  五:權(quán)限分配的實現(xiàn)
  
  1:)實現(xiàn)角色資源的綁定
  在我的實現(xiàn)中我使用xml文件去配置如下:
  <role name="01">
  <resource-list>
  <resource name="test" url="test.jsp" menu="false"/>
  <resource name="user" url="user.jsp" menu="true"/>
  <!--綁定綁定一個葉子-->
  </resource-list>
  <node-list>
  <node name="system.test" include="false">
  <!--綁定綁定一個節(jié)點假如include為true綁定所有子葉子-->
  </node-list>
  </role>
  
  2:)權(quán)限的判定
  這一部分有很多中實現(xiàn)方式,一種所有的Action繼續(xù)BaseAction
  在BaseAction里面實現(xiàn),并在沒一個Action里面去調(diào)用判定.
  
  另外一種交給Struts去判定
  org.apache.struts.action.RequestProcessor
  里面有一個processActionPerform
  調(diào)用Action的execute去執(zhí)行Action
  我們可以修改processActionPerform讓其在執(zhí)行execute前先執(zhí)行權(quán)限檢查
  假如是這樣的話,必須修改org.apache.struts.action.Action
  讓一個方法去實現(xiàn)權(quán)限判定.
  
  假如使用第二種需要修改蠻多源代碼,不建議對Struts不熟悉的人使用

上一篇:Struts Layout

下一篇:安裝Struts需要的軟件

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 广州毛片| 成年人黄色免费网站 | 黄色大片在线免费观看 | 在线看免费观看av | 特级黄一级播放 | 国产老师做www爽爽爽视频 | 精品久久久久久 | 免费在线观看成年人视频 | 92看片淫黄大片欧美看国产片 | 蜜桃传免费看片www 一本色道精品久久一区二区三区 | 在线观看中文字幕av | 亚洲成人高清电影 | 澳门一级淫片免费视频 | 一级黄色片在线看 | 精品国产乱码久久久久久久 | 99在线精品视频免费观看20 | 精品一区二区三区在线视频 | 在线成人免费视频 | 日韩黄色片在线观看 | 亚洲成人福利在线观看 | 成人性生活视频在线观看 | 原来神马影院手机版免费 | 中国美女一级黄色大片 | 成人国产精品一区二区毛片在线 | 日韩精品免费看 | 久草热久草视频 | 8x成人在线电影 | 精国产品一区二区三区四季综 | 亚州综合图片 | 亚洲国产一区二区三区 | 91九色电影 | 黄色一级片在线观看 | 欧美精品一级 | 久久久噜噜噜久久熟有声小说 | 午夜精品在线视频 | 在线成人一区二区 | 国产亚洲精品久久久久久久 | 亚洲极色 | 欧美乱淫 | 成人免费观看毛片 | 澳门一级淫片免费视频 |