Shiro 基本過濾器

2021-09-02 19:13:32 字數 1292 閱讀 7323

shiro***的基礎類圖:

1、nameablefilter:nameablefilter給filter起個名字,如果沒有設定預設就是filtername;還記得之前的如authc嗎?當我們組裝***鏈時會根據這個名字找到相應的***例項;

2、onceperrequestfilter:onceperrequestfilter用於防止多次執行filter的;也就是說一次請求只會走一次***鏈;另外提供enabled屬性,表示是否開啟該***例項,預設enabled=true表示開啟,如果不想讓某個***工作,可以設定為false即可。

3、shirofilter:shirofilter是整個shiro的入口點,用於攔截需要安全控制的請求進行處理,這個之前已經用過了。

4、advicefilter:advicefilter提供了aop風格的支援,類似於springmvc 中的interceptor。

prehandler:類似於aop 中的前置增強;在***鏈執行之前執行;如果返回true 則繼續***鏈;否則中斷後續的***鏈的執行直接返回;進行預處理(如基於表單的身份驗證、授權)

posthandle:類似於aop 中的後置返回增強;在***鏈執行完成後執行;進行後處理(如記錄執行時間之類的);

aftercompletion:類似於aop 中的後置最終增強;即不管有沒有異常都會執行;可以進行清理資源(如接觸subject與執行緒的繫結之類的);

5、pathmatchingfilter

pathmatchingfilter 提供了基於ant 風格的請求路徑匹配功能及***引數解析的功能,如「roles[admin,user]」自動根據「,」分割解析到乙個路徑引數配置並繫結到相應的路徑:

pathsmatch:該方法用於path 與請求路徑進行匹配的方法;如果匹配返回true;

6、accesscontrolfilter

accesscontrolfilter提供了訪問控制的基礎功能;比如是否允許訪問/當訪問拒絕時如何處理等:

onaccessdenied:表示當訪問拒絕時是否已經處理了;如果返回true 表示需要繼續處理;如果返回false表示該***例項已經處理了,將直接返回即可。

onprehandle會自動呼叫這兩個方法決定是否繼續處理:

比如基於表單的身份驗證就需要使用這些功能。

如果我們想進行訪問訪問的控制就可以繼承

accesscontrolfilter;如果我們要新增一些通用資料我們可以直接繼承pathmatchingfilter。

shiro內建過濾器

rest 例子 admins user rest user 根據請求的方法,相當於 admins user perms user method 其中method為post,get,delete等。port 例子 admins user port 8081 當請求的url的埠不是8081是跳轉到sch...

shiro過濾器名稱

功 能配 置 anon 任何使用者傳送的請求都能夠訪問 authc 經過認證的請求可訪問,否則將會將請求重定向到 ini 配置檔案配置的 authc.loginurl 資源,進行認證操作 authc.loginurl login.jsp authc.successurl 認證成功後重定向到此資源 a...

Shiro內建過濾器

執行 web 應用時,shiro會建立一些有用的預設 filter 例項,並自動地在 main 項中將它們置為可用 這些可用的預設的 filter 例項是被 defaultfilter 列舉類定義的 列舉的名稱字段就是可供配置的名稱 這些過濾器分為兩組 u 認證過濾器 anon 不認證也可以訪問 a...