shiro註解不生效(表象)

2021-07-22 14:02:29 字數 878 閱讀 8232

連續被折磨三天,shiro的@requirespermissions註解就是感覺不到生效,找各種博文、帖子也解決不了,最後逼著對shiro斷點觀察,終於找到問題根源...

在網上找資料,一般註解不生效,主要有兩個原因:

1、沒有啟用shiro註解功能。而啟用該功能主要有如下兩種方式:

①、使用

②、使用defaultadvisorautoproxycreator

2、需要將以上開啟shiro註解功能放在spring-mvc.xml檔案中。

說明:這種情況我沒遇上,我的也沒放進改配置檔案中,我是直接放在spring-shiro.xml檔案中,然後在web.xml的context-param中引入的。

但是,我這邊並不是這兩種情況,試了各種情況,發現都不好使,最後在org.apache.shiro.authz.aop.permissionannotationhandler斷點跟進,發現確實進去了,說明@requirespermissions確實生效,可為什麼我配置乙個錯誤的許可權值(@requirespermissions(operative:manager:itemlist111111),正確的是@requirespermissions(

operative:manager:itemlist

))還是報錯呢?最後發現受shiro的匹配規則影響,因為我在系統中已經有了乙個operative:manager許可權,所以在末尾加許可權項會讓shiro判斷已經擁有該許可權。

好吧,終於找到問題根源,然後我將已經存在的

operative:manager改為operative:manager:manager就全部ok了。

shiro許可權不生效原因分析

許可權標籤定義如下 標籤定義 頁面一頁面二 第一層級 one view two view 第二層級 one page1 view two page2 view 第三層級 one page1 view add two page2 view add 開始懷疑是資料庫沒有錄入,檢視後許可權標籤與角色已對應...

spring 註解aop不生效

首先基礎要理解spring配置檔案和springmvc配置檔案 spring註解不生效可從以下幾個方面找原因 1 springmvc的配置檔案中只配置掃瞄 controller的註解,spring的配置檔案掃瞄除了 controller的註解的其他的註解 2 檢查 pointcut 的表示式是否正確...

Cacheable註解不生效原因

cacheable註解中 乙個方法a調同乙個類裡的另乙個有快取註解的方法b,這樣是不走快取的。例如在同乙個service裡面兩個方法的呼叫,快取是不生效的 解決方案 1.不使用註解的方式,直接取 ehcache 的 cachemanger 物件,把需要快取的資料放到裡面,類似於使用 map,快取的邏...