Shiro+SpringBoot 時,anon配置的匿名路徑被攔截,自定義配置類走過的坑

最開始一直不去自定配置類,究其緣由發現是少了:html

/**
 * Shiro配置類
 */
@Configuration

少了@Configuration,這個註解配置。java

一路順暢的走了下來:面試

 是否是要美滋滋的走上康莊大道了呢?ide

發現:code

anon,匿名放行機制無論用哦。怎麼回事呢?

修改爲了:htm

//放行頁面;
        filterMap.put("/testThymeLeaf","anon");
        //攔截某個目錄下的全部頁面;
        filterMap.put("/*","authc");

再配置shiro的時候,以下代碼要注意:blog

一、下述代碼中必須是LinkedHashMap 而不能是HashMap。get

二、anon定義必須在authc以前數學

不然anon定義不生效it

怎麼還不行呢?

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());
}
相關文章
相關標籤/搜索