当前位置: 代码网 > it编程>编程语言>Java > Shiro+SpringBoot时,anon配置的匿名路径被拦截,自定义配置类走过的坑及解决

Shiro+SpringBoot时,anon配置的匿名路径被拦截,自定义配置类走过的坑及解决

2026年03月14日 Java 我要评论
最开始一直不去自定配置类究其原因发现是少了:/** * shiro配置类 */@configuration少了@configuration,这个注解配置。一路顺畅的走了下来是不是要美滋滋的走上康庄大道

最开始一直不去自定配置类

究其原因发现是少了:

/**
 * 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());
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com