最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shiro配置路徑為anno,但請(qǐng)求還是攔截下來的解決方案

 更新時(shí)間:2026年03月13日 09:49:02   作者:3k油  
文章講述了在使用Shiro進(jìn)行過濾認(rèn)證時(shí),因?yàn)槿萜鞯拇鎯?chǔ)順序?qū)е碌膯栴},通過分析,作者發(fā)現(xiàn)使用LinkedHashMap可以解決這個(gè)問題,因?yàn)長inkedHashMap是有序的

踩坑點(diǎn):

  • 沒留意到ShiroFilterFactoryBean中配置的過濾認(rèn)證規(guī)則是有序的,這個(gè)有序是指Map容器中的存儲(chǔ)順序。
  • shiro進(jìn)行過濾認(rèn)證時(shí)是根據(jù)配置的容器存儲(chǔ)順序進(jìn)行處理的。因此容器應(yīng)該使用LinkedHashMap。

一、問題描述

在shiro的ShiroFilterFactoryBean中配置了(“/web/index",“anon”),但請(qǐng)求還是被攔截下來進(jìn)行認(rèn)證了。

二、分析流程

容器使用的是HashMap存儲(chǔ),對(duì)比存儲(chǔ)不同個(gè)數(shù)的元素發(fā)現(xiàn)了問題所在。

圖一:存儲(chǔ)12個(gè)元素,”/"->“authc”,在最下面。此時(shí)能夠不用認(rèn)證就訪問到"/web/index";

圖二:存儲(chǔ)了13個(gè)元素進(jìn)行hashMap,發(fā)現(xiàn)”/"->“authc”,不是在最下面,導(dǎo)致訪問其下面的其他路徑,即使是配置了"anon" 也依然被攔截下來進(jìn)行認(rèn)證了。

進(jìn)一步認(rèn)證容器是否使用錯(cuò)誤,更換成了LinkedHashMap。結(jié)果下面所示的如圖三。

圖三:發(fā)現(xiàn)把HashMap更換成存儲(chǔ)有序的LinkedHashMap后,”/**“->"authc"處于最下面,”/web/index“正常訪問沒有被攔截進(jìn)行認(rèn)證,即使此時(shí)存儲(chǔ)的是13個(gè)元素。

為了排除偶然性,把put進(jìn)去HashMap的key是隨機(jī)輸入的,結(jié)果如下面圖四所示。

三、分析結(jié)論

在ShiroFilterFactoryBean中配置是否認(rèn)證的規(guī)則時(shí),一定要注意使用的容器是否是有序的,因?yàn)楦鶕?jù)上面的分析可知,shiro根據(jù)配置的規(guī)則進(jìn)行攔截認(rèn)證時(shí),是根據(jù)容器中的存儲(chǔ)順序決定的。

四、總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • xxl-job定時(shí)任務(wù)配置應(yīng)用及添加到springboot項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)API調(diào)用

    xxl-job定時(shí)任務(wù)配置應(yīng)用及添加到springboot項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)API調(diào)用

    XXL-JOB是一個(gè)分布式任務(wù)調(diào)度平臺(tái),其核心設(shè)計(jì)目標(biāo)是開發(fā)迅速、學(xué)習(xí)簡單、輕量級(jí)、易擴(kuò)展,本篇文章主要是對(duì)xuxueli的xxl-job做一個(gè)簡單的配置,以及將其添加到自己已有的項(xiàng)目中進(jìn)行api調(diào)用,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Java?Redis配置Redisson的方法詳解

    Java?Redis配置Redisson的方法詳解

    這篇文章主要為大家詳細(xì)介紹了Java?Redis配置Redisson的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定參考價(jià)值,感興趣的可以了解一下
    2022-08-08
  • MyBatis中常用的SQL語句詳解

    MyBatis中常用的SQL語句詳解

    MyBatis是一種優(yōu)秀的持久層框架,它支持定制化SQL、存儲(chǔ)過程以及高級(jí)映射,本文介紹了MyBatis中常用的SQL語句,包括基本查詢、多條件查詢、關(guān)聯(lián)查詢、分頁查詢、插入、更新、刪除等,并結(jié)合MyBatis的特性進(jìn)行了說明
    2025-03-03
  • Springboot+Bootstrap實(shí)現(xiàn)增刪改查實(shí)戰(zhàn)

    Springboot+Bootstrap實(shí)現(xiàn)增刪改查實(shí)戰(zhàn)

    這篇文章主要介紹了Springboot+Bootstrap實(shí)現(xiàn)增刪改查實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • mybatis-plus根據(jù)指定字段批量,刪除、修改實(shí)現(xiàn)過程

    mybatis-plus根據(jù)指定字段批量,刪除、修改實(shí)現(xiàn)過程

    本文介紹了三種MyBatis-Plus進(jìn)行批量刪除和修改的方法,第一種是避免手寫SQL,第二種是手動(dòng)獲取SqlSessionTemplate,第三種是重寫executeBatch方法,雖然批量處理效率較低,但對(duì)于不追求性能且不想手寫SQL的場(chǎng)景,可以嘗試這種方法
    2026-04-04
  • Java實(shí)現(xiàn)連連看算法

    Java實(shí)現(xiàn)連連看算法

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)連連看算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java多線程編程實(shí)現(xiàn)socket通信示例代碼

    Java多線程編程實(shí)現(xiàn)socket通信示例代碼

    這篇文章主要介紹了Java多線程編程實(shí)現(xiàn)socket通信示例代碼,詳細(xì)介紹了tcp、udp協(xié)議,以及基于socket的Java網(wǎng)絡(luò)編程的相關(guān)內(nèi)容及代碼示例,代碼測(cè)試可用,供大家參考。
    2017-10-10
  • springboot jsp支持以及轉(zhuǎn)發(fā)配置方式

    springboot jsp支持以及轉(zhuǎn)發(fā)配置方式

    文章介紹了如何在Spring Boot項(xiàng)目中配置和使用JSP,并提供了一步一步的指導(dǎo),包括添加依賴、配置文件設(shè)置、控制器和視圖的使用
    2024-12-12
  • 基于Springboot實(shí)現(xiàn)JWT認(rèn)證的示例代碼

    基于Springboot實(shí)現(xiàn)JWT認(rèn)證的示例代碼

    本文主要介紹了基于Springboot實(shí)現(xiàn)JWT認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 基于spring-mvc.xml和application-context.xml的配置與深入理解

    基于spring-mvc.xml和application-context.xml的配置與深入理解

    這篇文章主要介紹了spring-mvc.xml和application-context.xml的配置與深入解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

洪江市| 香格里拉县| 夏邑县| 阿克| 彭州市| 循化| 修文县| 霸州市| 永定县| 镇巴县| 巴彦淖尔市| 宽城| 临西县| 任丘市| 黑山县| 柘城县| 三都| 顺义区| 历史| 同心县| 新宾| 台前县| 隆回县| 烟台市| 安吉县| 盐城市| 博野县| 台南县| 瓮安县| 双流县| 朔州市| 明星| 泗阳县| 搜索| 门头沟区| 昆明市| 左云县| 象州县| 宁化县| 北辰区| 额尔古纳市|