Shiro+SpringBoot 时,anon配置的匿名路径被拦截,自定义配置类走过的坑
【摘要】
最开始一直不去自定配置类,究其原因发现是少了:
/** * Shiro配置类 */@Configuration
少了@Configuration,这个注解配置。
一路顺畅的走了下来:
是不是要美滋滋的走上康庄大道了呢?
发现:
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());
-
}
文章来源: aaaedu.blog.csdn.net,作者:tea_year,版权归原作者所有,如需转载,请联系作者。
原文链接:aaaedu.blog.csdn.net/article/details/104725640
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)