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());
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
从基础实现到性能优化详解Java实现Word转HTML的完整指南
本文将基于实际项目经验,介绍 Java 中 Word 转 HTML 的几种实现方案,并以其中一种为例详细讲解转换过程中的关键配置,性能优化及常见问题处理2026-04-04
Java使用JasperReport高效生成Word文档指南
在当今数据驱动的商业环境中,企业每天都需要处理大量动态文档生成需求,本文主要为大家介绍了如何使用JasperReport高效生成Word文档,感兴趣的小伙伴可以了解下2025-07-07
java中FileOutputStream中文乱码问题解决办法
这篇文章主要介绍了java中FileOutputStream中文乱码问题解决办法的相关资料,需要的朋友可以参考下2017-04-04
Java语言实现简单FTP软件 FTP软件效果图预览之上传功能(3)
这篇文章主要为大家详细介绍了Java语言实现简单FTP软件,FTP软件效果图预览之上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-03-03
MyBatis的mapper.xml文件中入参和返回值的实现
这篇文章主要介绍了MyBatis的mapper.xml文件中入参和返回值的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-01-01


最新评论