主仆调教SM束缚绳索捆绑,成品人和精品人的区别三叶草,双性受被各种性器调教学生小说,精品一区二区三区水蜜桃

Shiro 基本過(guò)濾器

Shiro攔截器的基礎(chǔ)類(lèi)圖:

1、NameableFilter:NameableFilter給Filter起個(gè)名字,如果沒(méi)有設(shè)置默認(rèn)就是FilterName;還記得之前的如authc嗎?當(dāng)我們組裝攔截器鏈時(shí)會(huì)根據(jù)這個(gè)名字找到相應(yīng)的攔截器實(shí)例;

2、OncePerRequestFilter:OncePerRequestFilter用于防止多次執(zhí)行Filter的;也就是說(shuō)一次請(qǐng)求只會(huì)走一次攔截器鏈;另外提供enabled屬性,表示是否開(kāi)啟該攔截器實(shí)例,默認(rèn)enabled=true表示開(kāi)啟,如果不想讓某個(gè)攔截器工作,可以設(shè)置為false即可。

3、ShiroFilter:ShiroFilter是整個(gè)Shiro的入口點(diǎn),用于攔截需要安全控制的請(qǐng)求進(jìn)行處理,這個(gè)之前已經(jīng)用過(guò)了。

4、AdviceFilter:AdviceFilter提供了AOP風(fēng)格的支持,類(lèi)似于SpringMVC 中的Interceptor。

preHandler:類(lèi)似于AOP 中的前置增強(qiáng);在攔截器鏈執(zhí)行之前執(zhí)行;如果返回true 則繼續(xù)攔截器鏈;否則中斷后續(xù)的攔截器鏈的執(zhí)行直接返回;進(jìn)行預(yù)處理(如基于表單的身份驗(yàn)證、授權(quán))

postHandle:類(lèi)似于AOP 中的后置返回增強(qiáng);在攔截器鏈執(zhí)行完成后執(zhí)行;進(jìn)行后處理(如記錄執(zhí)行時(shí)間之類(lèi)的);

afterCompletion:類(lèi)似于AOP 中的后置最終增強(qiáng);即不管有沒(méi)有異常都會(huì)執(zhí)行;可以進(jìn)行清理資源(如接觸Subject與線程的綁定之類(lèi)的);

5、PathMatchingFilter

PathMatchingFilter 提供了基于Ant 風(fēng)格的請(qǐng)求路徑匹配功能及攔截器參數(shù)解析的功能,如“roles[admin,user]”自動(dòng)根據(jù)“,”分割解析到一個(gè)路徑參數(shù)配置并綁定到相應(yīng)的路徑:

pathsMatch:該方法用于path 與請(qǐng)求路徑進(jìn)行匹配的方法;如果匹配返回true;

onPreHandle:在preHandle 中,當(dāng)pathsMatch 匹配一個(gè)路徑后,會(huì)調(diào)用opPreHandler 方法并將路徑綁定參數(shù)配置傳給mappedValue;然后可以在這個(gè)方法中進(jìn)行一些驗(yàn)證(如角色授權(quán)),如果驗(yàn)證失敗可以返回false 中斷流程;默認(rèn)返回true;也就是說(shuō)子類(lèi)可以只實(shí)現(xiàn)onPreHandle即可,無(wú)須實(shí)現(xiàn)preHandle。如果沒(méi)有path 與請(qǐng)求路徑匹配,默認(rèn)是通過(guò)的(即preHandle 返回true)。

6、AccessControlFilter

AccessControlFilter提供了訪問(wèn)控制的基礎(chǔ)功能;比如是否允許訪問(wèn)/當(dāng)訪問(wèn)拒絕時(shí)如何處理等:

isAccessAllowed:表示是否允許訪問(wèn);mappedValue 就是[urls]配置中攔截器參數(shù)部分,如果允許訪問(wèn)返回true,否則false;

onAccessDenied:表示當(dāng)訪問(wèn)拒絕時(shí)是否已經(jīng)處理了;如果返回true 表示需要繼續(xù)處理;如果返回false表示該攔截器實(shí)例已經(jīng)處理了,將直接返回即可。

onPreHandle會(huì)自動(dòng)調(diào)用這兩個(gè)方法決定是否繼續(xù)處理:

另外AccessControlFilter還提供了如下方法用于處理如登錄成功后/重定向到上一個(gè)請(qǐng)求:

比如基于表單的身份驗(yàn)證就需要使用這些功能。

如果我們想進(jìn)行訪問(wèn)訪問(wèn)的控制就可以繼承

AccessControlFilter;如果我們要添加一些通用數(shù)據(jù)我們可以直接繼承PathMatchingFilter。

  1. 主站蜘蛛池模板: 阜康市| 沽源县| 五家渠市| 怀化市| 略阳县| 文昌市| 河津市| 固镇县| 井陉县| 峨山| 阿城市| 从江县| 朝阳县| 凯里市| 连城县| 兴化市| 铁力市| 平塘县| 桐梓县| 安义县| 盖州市| 成安县| 岳池县| 洪湖市| 苗栗市| 景德镇市| 正宁县| 淅川县| 酒泉市| 枞阳县| 靖西县| 奎屯市| 保定市| 宝山区| 铁岭市| 甘肃省| 永清县| 玉屏| 攀枝花市| 龙岩市| 清水县|