Struts2實現許可權控制

2021-06-10 00:11:23 字數 1485 閱讀 7147

,史上最全it資源,個人收藏總結!

struts2的核心功能是通過乙個個interceptor來實現的,那麼使用者可以自定義乙個interceptor來實現許可權控制功能。

步驟一:自定義乙個類,該類實現interceptor介面,重寫其intercept()方法。如:

package edu.interceptor;

import com.opensymphony.xwork2.actioncontext;

import com.opensymphony.xwork2.actioninvocation;

import com.opensymphony.xwork2.interceptor.interceptor;

public class permissioninterceptor implements interceptor

@override

public void init()

@override

public string intercept(actioninvocation invocation) throws exception

}

步驟二:註冊該interceptor類。

例如:struts-interceptor.xml (方式一)

/interceptor/message.jsp

等效於:(方式二)

/interceptor/message.jsp

等效於:(方式三)

<?xml version="1.0" encoding="utf-8" ?>

/interceptor/message.jsp

這種使用方式為package所有action註冊interceptor,不好,因為這樣當處理該包下所有的action的請求時,都會經過***。

總結:

(1)因為struts2中如檔案上傳,資料驗證,封裝請求引數到action等功能都是由系統預設的defaultstack中的***實現的,所以我們定義的***需要引用系統預設的defaultstack,這樣應用才可以使用struts2框架提供的眾多功能。

(2)一旦某個action中自定義了乙個interceptor,那麼該action就失去了struts2提供的系統interceptor,解決辦法是在自定義之前註冊系統的

(3)如果希望包下的所有action都使用自定義的***,可以通過把***定義為預設***。注意:每個包只能指定乙個預設***。另外,一旦我們為該包中的某個action顯式指定了某個***,則預設***對該action不會起作用。需要重新在action下註冊

(4)可以使用來管理多個,如註冊方式一。

(5)defaultstack在\struts2-core-2.3.4.1.jar的struts-default.xml中定義。

Struts2許可權控制

1 實現許可權控制 本示例應用要求使用者登陸,且必須為指定使用者名稱才可以檢視系統中某個檢視資源 否則,系統直接轉入登陸頁面。對於上面的需求,可以在每個action的執行實際處理邏輯之前,先執行許可權檢查邏輯,但這種做法不利於 復用。因為大部分action裡的許可權檢查 都大同小異,故將這些許可權檢...

Struts2字尾 深入Struts2

一 將action字尾變成html字尾 xmlversion 1.0 encoding utf 8 doctype struts public apache software foundation dtd struts configuration 2.1 en struts include file...

Struts2結合注釋實現簡易許可權管理 拋板磚引玉

許可權管理一直是乙個比較頭疼的問題。現在實現的也只是功能許可權的問題。使用者 角色 許可權。一般設定許可權都是用 url,可不可以轉換乙個方式呢,由於struts2實現的web系統中功能都是通過action類中的方法體現,把action方法當作乙個資源,通過使用注釋指明資源id,可以通過資源id找到...