當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Shiro+SpringBoot 时,anon配置的匿名路径被拦截,自定义配置类走过的坑
生活随笔
收集整理的這篇文章主要介紹了
Shiro+SpringBoot 时,anon配置的匿名路径被拦截,自定义配置类走过的坑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最開始一直不去自定配置類,究其原因發現是少了:
/*** Shiro配置類*/ @Configuration少了@Configuration,這個注解配置。
一路順暢的走了下來:
?是不是要美滋滋的走上康莊大道了呢?
發現:
anon,匿名放行機制不管用哦。怎么回事呢?修改成了:
//放行頁面;filterMap.put("/testThymeLeaf","anon");//攔截某個目錄下的所有頁面;filterMap.put("/*","authc");再配置shiro的時候,如下代碼要注意:
1、下述代碼中必須是LinkedHashMap 而不能是HashMap。
2、anon定義必須在authc之前
否則anon定義不生效
怎么還不行呢?
anon配置的匿名路徑被攔截
主要原因:配置過濾器集合時使用了HashMap
Map<String,String> filterMap=new HashMap<>();正確代碼如下:應該使用LinkedHashMap
Map<String,String> filterMap=new LinkedHashMap<>();面試題時刻:
為什么這里用LinkedHashMap?
劃重點了:
(一)HashMap取值--->不是按照插入順序
HashMap<String,Integer> hm=new HashMap<String, Integer>(); hm.put("大學語文",3); hm.put("英語",1); hm.put("音樂鑒賞",5); hm.put("數學",2); hm.put("形式政策",4); for (Map.Entry<String ,Integer> entry:hm.entrySet()){System.out.println(entry.getKey()+" : "+entry.getValue()); }(二):LinkedHashMap的取值--->是按照插入取值
LinkedHashMap<String,Integer> lhm=new LinkedHashMap<String,Integer>(); lhm.put("化學",1); lhm.put("生物",2); lhm.put("物理",3); lhm.put("語文",4); lhm.entrySet(); for (Map.Entry<String,Integer> entry:lhm.entrySet()){System.out.println(entry.getKey()+" : "+entry.getValue()); }?
總結
以上是生活随笔為你收集整理的Shiro+SpringBoot 时,anon配置的匿名路径被拦截,自定义配置类走过的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springboot整合shiro地址栏
- 下一篇: 为什么不用DriverManager.r