Spring boot Shiro anno不启作用问题分析

2023-11-09

1. 分析

之前在Shiro中没有配置过静态资源过滤,这次在配置过程中给予静态资源anno发现还是会被拦截,查阅其它博客,基本上都是在说LinkedHashMap 过滤次序问题,但我最初就是这个,因此排除。后再翻阅相关博客的时候看到了 大佬博客 中所说不要将过滤器注册到容器中即可,自己手动创建过滤器!!,然后查看我的代码,果然将过滤器注册到了容器中,将其拿掉,然后在shiroconfig@Autowired JwtFilter jwtfilter 改成 new JwtFilter()即可。
在这里插入图片描述

2. 具体代码

@Bean
    public ShiroFilterChainDefinition shiroFilterChainDefinition() {
        DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition();
        Map<String, String> filterMap = new LinkedHashMap<>();

        // swagger2页面
        filterMap.put("/swagger-ui.html", "anon");
        filterMap.put("/swagger/**", "anon");
        filterMap.put("/swagger-resources/**", "anon");
        filterMap.put("/v2/**", "anon");
        filterMap.put("/webjars/**", "anon");
        filterMap.put("/webjars.bycdao-ui/**", "anon");
        filterMap.put("/configuration/**", "anon");
        filterMap.put("/doc.html", "anon");

        filterMap.put("/**", "jwt"); // 主要通过注解方式校验权限

        chainDefinition.addPathDefinitions(filterMap);
        return chainDefinition;
    }

    @Bean("shiroFilterFactoryBean")
    public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager,ShiroFilterChainDefinition shiroFilterChainDefinition) {
        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
        shiroFilter.setSecurityManager(securityManager);
        Map<String, Filter> filters = new HashMap<>();
        // ---------------------------------------------------
        filters.put("jwt", new JwtFilter()); // 修改处
        shiroFilter.setFilters(filters);
        Map<String, String> filterMap = shiroFilterChainDefinition.getFilterChainMap();
        shiroFilter.setFilterChainDefinitionMap(filterMap);
        return shiroFilter;
    }

若在JwtFilter 使用到JwtUtil类判断tk是否过期等,而JwtUtil 同样不要注册到容器中,不然可能请求会报 Not authorized to invoke method

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring boot Shiro anno不启作用问题分析 的相关文章

  • 如何查看Pocketsphinx词典中是否存在该单词?

    我只是想看看字典文件中是否存在字符串 字典文件位于问题底部 我想检查语音识别器是否可以识别单词 例如 识别器将无法识别字符串ahdfojakdlfafiop 因为字典中没有定义 所以 我可以检查某个单词是否在 pocktsphinx 词典中
  • HTTP 状态 404 - 请求的资源不可用

    在使用 MyEclipse IDE 中的 Tomcat 服务器和 Struts 2 框架时 我遇到了反复出现的问题 我将我的程序作为服务器应用程序运行 当它运行时 默认的index jsp 文件将成功打开 但应用程序的其他过去都不起作用 当
  • Google 地图查询返回的 JSON 包含像 \x26 这样的编码字符(如何解码?)

    在 Java 应用程序中 我获取 JSON 来自 Google 地图 其中包含以下字符 x26我想将其转换为其原始字符 据我所知 这是一个 UTF 8 表示法 但我不完全确定 在源 JSON 中 可能会出现各种编码字符 例如 x3c div
  • 用 @DataJpaTest 注释的测试不是用 @Autowired 注释的自动装配字段

    我有一个 Spring Boot 应用程序 其中包含 Spring Data Jpa 存储库 我需要围绕这个存储库运行单元 或组件 测试 我对 Spring Data Jpa 没有太多经验 这是我的测试 这很简单 我无法让它通过 impor
  • 如何在 Eclipse 中用阿拉伯语读写

    我在 eclipse 中编写了这段代码来获取一些阿拉伯语单词 然后打印它们 public class getString public static void main String args throws Exception PrintS
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • JTree 节点不会被直观地选择

    不知何故 我无法为我的 JTree 节点启用 选择突出显示 我正在我的项目中使用自定义单元格渲染器 这很可能导致此问题 这是完整的渲染器类代码 protected class ProfessionTreeCellRenderer exten
  • 通过 InjectMocks Spy 注入对象

    我需要对一个类运行一系列单元测试 该类具有 Autowired Logger 实现 实现的基本思想是 Mock Logger logger InjectMocks TestedClass tested 但我想保存日志输出功能 Mockito
  • 如何对 IntStream 进行逆序排序

    我正在使用 txt 文件读取数字BufferedReader 我想颠倒该流中元素的顺序 以便在收集它们时 它们将从最高到最低排列 我不想在构建数组后进行排序 因为我不知道其中可能有多少元素 我只需要最高的 N 个元素 in new Buff
  • 使用 Spring 时实例化对象,用于测试与生产

    使用 Spring 时 应该使用 Spring 配置 xml 来实例化生产对象 并在测试时直接实例化对象 这样的理解是否正确 Eg MyMain java package org world hello import org springf
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • Java替换特定字符

    这是我在这个网站上的第一个问题 所以我会尽量不要成为一个十足的菜鸟 我目前正在用java 创建刽子手游戏 所以我问你的问题是我们是否被赋予了 幽灵 这个词 并将 Ghost 替换为 hiddenWord ghost length for i
  • 从 Java 日历迁移到 Joda 日期时间

    以前 当我第一次设计股票应用相关软件时 我决定使用java util Date表示股票的日期 时间信息 后来我体会到了大部分方法java util Date已弃用 因此 很快 我重构了所有代码以利用java util Calendar 然而
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • Path2D 上的鼠标指针检测

    我构建了一个Path2D http docs oracle com javase 7 docs api java awt geom Path2D html表示由直线组成的未闭合形状 我希望能够检测何时单击鼠标并且鼠标指针靠近路径 在几个像素
  • 从一个文本文件中获取数据并将其移动到新的文本文件

    我有一个文件 里面有数据 在我的主要方法中 我读入文件并关闭文件 我调用另一种方法 在原始文件的同一文件夹内创建一个新文件 所以现在我有两个文件 原始文件和通过我调用的方法生成的文件 我需要另一种方法 从原始文件中获取数据并将其写入创建的新
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 初步判断,学ue4的捷径就是先学好unity

    这两天 看Unity 发现和ue4都是组件式编程 基本上如出一辙 只是Unity更简单些 资料丰富些 学Ue4 是c 的问题么 我认为是游戏理念的问题 不懂游戏 更不会用组件式引擎写游戏 即 不懂业务 只能写slate 好比 学会c 了就会
  • 【翻译ver】LesaNet论文阅读(CVPR2019)——医学影像

    Holistic and Comprehensive Annotation of Clinically Signi cant Findings on Diverse CT Images Learning from Radiology Rep
  • getchar函数输入与缓冲区

    文章目录 目录 文章目录 前言 一 1 缓冲区是什么 2 为什么要有缓冲区 二 1 getchar函数与缓冲区 2 getchar清理缓存区 总结 前言 介绍了解getchar函数及其在缓冲区中的应用 一 1 缓冲区是什么 缓冲区又称为缓存
  • react+vite+ts+antdesign项目搭建-20220802

    react vite ts antdesign项目搭建 可同时参考vue3 vite ts Elementplus项目搭建 20220802 目录 react vite ts antdesign项目搭建 可同时参考vue3 vite ts
  • unity创建脚本生成头部注释( 作 者,文件路径,创建日期,功能描述)

    像这样 region HeadComments Copyright C YEAR DEVELOPERS 作 者 AUTHOR 文件路径 FILEPATH 创建日期 CREATIONDATE 功能描述 endregion using Unit
  • Linux下删除文件名中包含特殊字符的文件

    Linux下删除文件名中包含特殊字符的文件 在windows下不管什么文件名的文件delete一下全废掉 再顽固的用第三方软件粉碎一下就ok 在linux命令行下就不一样了 rm命令时常删除不掉拥有千奇百怪的文件名 特殊字符 超长字符 各种
  • 结合promise与websocket的发布/订阅模式实践

    结合promise与websocket的发布 订阅模式实践 本文初衷 最近恰好在公司做了一个聊天室系统 所以在系统中做了一下对websocket进行的promise化改造 所以想写篇文章总结一下 如果大家有什么更好的方法或者心得感悟 欢迎交
  • 鸿蒙3.0怎么升级,升级鸿蒙OS3.0机型曝光!大哥,你是认真的吗?

    鸿蒙OS系统 可真是 千呼万唤始出来 啊 自2017年华为开始研发鸿蒙内核1 0 2018年进展至鸿蒙内核2 0 2019年正式推出了鸿蒙OS1 0系统 并在发布会上预计2021年发布鸿蒙OS3 0系统 虽然在开发者大会上 华为宣布在智能手
  • notepad++ 如何以16进制比较两个文件

    Notepad 不支持直接以十六进制比较两个文件 但你可以通过使用插件来实现这个功能 以下是使用 Compare Plugin 插件进行文件比较的步骤 安装 Compare Plugin 插件 打开 Notepad 点击菜单栏的 插件 Pl
  • 如何在Java中使用protobufjava进行protobuf生成器编写

    作者 禅与计算机程序设计艺术 最近随着微服务架构的流行 越来越多的人选择了基于RPC框架 比如dubbo springcloud 实现服务之间的通信 而这些RPC框架默认使用的协议则是基于Google的Protocol Buffers 简称
  • 几种优化(求最优解)算法的比较

    遗传算法 优点是能很好的处理约束 能很好的跳出局部最优 最终得到全局最优解 全局搜索能力强 缺点是收敛较慢 局部搜索能力较弱 运行时间长 且容易受参数的影响 遗传算法适合求解离散问题 具备数学理论支持 但是存在着汉明悬崖等问题 模拟退火 优
  • ChatGPT与人类情感理解的挑战:解读复杂的情绪和态度

    导言 人类情感是复杂而多变的 涉及各种情绪 态度和情感表达方式 对于机器来说 理解和解读人类情感是一项具有挑战性的任务 然而 随着自然语言处理技术的进步 像ChatGPT这样的模型逐渐能够参与人类情感的解读和理解 本文将探讨ChatGPT在
  • 面试题-面经及知识重点

    1 葵花宝典 https blog csdn net jackfrued article details 44921941 1 面试整理 http www jfox info gao shou zheng zheng li java che
  • 计算机毕业设计之垃圾分类公益回收管理系统

    垃圾分类公益回收管理系统的开发过程中 采用B S架构 主要使用Java技术进行开发 结合最新流行的springboot框架 使用Mysql数据库和Eclipse开发环境 该垃圾分类公益回收管理系统包括用户 回收者和管理员 其主要功能包括垃圾
  • jstl引入maven项目常见问题

    在jsp页面中引入jstl标签库报错问题 1 引入标签时报错 排查历史 最后尝试通过降低jstl版本解决问题 2 jstl 在eclipse 中无法使用 解决方案 jstl jar 与 stand jar 单独下载而没有带c tld文件 下
  • idea 创建application.yml文件不变小叶子的解决方法

    首先你的确保你的pom xml中的包是全的 1 点击 2 选到你没有变小叶子的项目 3 将Spring加进去
  • SQL 快速插入数据 1000万条数据

    insert into 表名 select generate series 0 10000000 md5 random text clock timestamp
  • Unity内实现高级相机效果

    Cinemachine插件可以快速实现各种相机效果 例如跟随 分镜 推拉式镜头等 配合Timeline可以创建Cinemachine Track实现动画融合 从PackageManager上可以下载Cinemachine插件 它有以下几种类
  • Linux Bash单方括号与双方括号 [和[[的区别

    本文参考 Burak G kmen 的文章 Differences Between Single and Double Brackets in Bash 单括号 是 shell builtin 即 test 内置命令 type is a s
  • Spring boot Shiro anno不启作用问题分析

    1 分析 之前在Shiro中没有配置过静态资源过滤 这次在配置过程中给予静态资源anno发现还是会被拦截 查阅其它博客 基本上都是在说LinkedHashMap 过滤次序问题 但我最初就是这个 因此排除 后再翻阅相关博客的时候看到了 大佬博