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...