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

 更新时间:2026年03月14日 09:08:40   作者:张哥编程课  
文章主要讲述了在Java配置类中使用`@Configuration`注解的重要性,并通过修改Shiro配置时遇到的问题,强调了使用`LinkedHashMap`而不是`HashMap`的原因,同时,文章还提供了一些面试题和总结,帮助读者更好地理解和应用这些知识

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

究其原因发现是少了:

/**
 * 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线程封闭之栈封闭和ThreadLocal

    java线程封闭之栈封闭和ThreadLocal

    这篇文章主要介绍了java线程封闭之栈封闭和ThreadLocal,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • springboot集成微软teams的实例代码

    springboot集成微软teams的实例代码

    Microsoft Teams 是一款基于聊天的智能团队协作工具,可以同步进行文档共享,并为成员提供包括语音、视频会议在内的即时通讯工具,今天给大家介绍springboot集成微软teams的示例代码,感兴趣的朋友一起看看吧
    2022-01-01
  • idea搭建mybatis环境配置全过程

    idea搭建mybatis环境配置全过程

    本文介绍了如何以IDEA搭建MyBatis环境配置的方法,包括步骤和注意事项,通过本文的介绍,可以轻松地以IDEA搭建MyBatis环境配置,提高开发效率
    2023-10-10
  • 解决SpringBoot应用启动失败:UnsatisfiedDependencyException与NoSuchBeanDefinitionException

    解决SpringBoot应用启动失败:UnsatisfiedDependencyException与NoSuchBean

    在Spring Boot开发过程中,启动应用时可能会遇到各种错误,其中最常见的就是UnsatisfiedDependencyException和NoSuchBeanDefinitionException,下面我们来看看该如何解决呢
    2025-06-06
  • java集合与数组的相同点和不同点

    java集合与数组的相同点和不同点

    今天小编就为大家分享一篇关于java集合与数组的相同点和不同点,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-04-04
  • java 实现读取txt文本数据并以数组形式一行一行取值

    java 实现读取txt文本数据并以数组形式一行一行取值

    今天小编就为大家分享一篇java 实现读取txt文本数据并以数组形式一行一行取值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 一篇文章教会你使用java爬取想要的资源

    一篇文章教会你使用java爬取想要的资源

    这篇文章主要介绍了使用java爬虫爬取想要的资源,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Struts2学习教程之输入校验示例详解

    Struts2学习教程之输入校验示例详解

    这篇文章主要给大家介绍了关于Struts2学习教程之输入校验的相关资料,文中通过示例介绍的非常详细,对大家学习或者使用struts2具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-05-05
  • vue3使用vue-diff工具来比较数据差异

    vue3使用vue-diff工具来比较数据差异

    这篇文章主要为大家详细介绍了vue3如何使用vue-diff工具来比较数据差异,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-11-11
  • Java web实现购物车案例

    Java web实现购物车案例

    这篇文章主要为大家详细介绍了Java web实现购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08

最新评论