SpringSecurity web.ignoring()不起作用分析

文章目录

    • 原因分析
    • 解决方法
      • 1. 在自己的过滤器中再次设置白名单

原因分析

例如:

@Overridepublic void configure(WebSecurity web) throws Exception {web.ignoring().antMatchers("/css/**");web.ignoring().antMatchers("/js/**");web.ignoring().antMatchers("/fonts/**");}

虽然在WebSecurity.ignoring().antMatchers()中配置了自己要放行的地址,但是我定义了自定义的过滤器。然而自定义过滤器交给了spring IOC管理,所以你在spring Security的config无论怎么配都会走到自己的过滤器。

 @Overrideprotected void configure(HttpSecurity http) throws Exception {http.cors().and().csrf().disable()
//                .requestMatchers()//用于规定哪些路径我需要拦截,精确指定请求匹配规则,如特定URL路径、请求方法、请求参数等。
//                .antMatchers("/api/**") // 仅匹配 /api/** 路径的请求
//                .and().authorizeRequests()//基于请求匹配规则来定义访问控制策略。该方法允许您为特定的请求路径或请求模式指定访问要求,如需要特定角色或权限才能访问。.antMatchers(HttpMethod.DELETE, "/tasks/**").hasRole("ADMIN")// 测试用资源,需要验证了的用户才能访问.antMatchers("/tasks/**").authenticated()// 其他都放行了.anyRequest().permitAll().and().addFilter(new JWTAuthenticationFilter(authenticationManager())).addFilter(new JWTAuthorizationFilter(authenticationManager()))// 不需要session.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().exceptionHandling().authenticationEntryPoint(new JWTAuthenticationEntryPoint()).accessDeniedHandler(new JWTAccessDeniedHandler());      //添加无权限时的处理}

解决方法

1. 在自己的过滤器中再次设置白名单

请注意如若只在自己的过滤器中设置白名单还不行,因为请求还会走SpringSecurity的过滤器链,必须两边都配置。

如果只想配置一边,可以在自己过滤器放行请求时,直接给本次请求设置一个默认的认证身份

SecurityContextHolder.getContext()
.setAuthentication(new UsernamePasswordAuthenticationToken
(RoleType.ANONYMOUS.getChineseName(), null, Collections.singleton
(new SimpleGrantedAuthority(
String.valueOf(RoleType.ANONYMOUS.getValue())))));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/8066.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软件架构】企业架构4A定义

文章目录 前言战略、BA、DA、AA、TA五者的关系1、业务架构(BA)2、数据架构(DA)3、应用架构(AA)4、技术架构(TA)总结 前言 业务架构是跨系统的业务架构蓝图,应用架构、数…

Redis

介绍 redis是内存数据结构存储,可用作数据库、缓存、消息代理和流引擎。 提供的数据结构有:String、hash、lists、sets、sorted sets、bitmaps、hyperloglogs、streams 字符串、哈希、列表、集、带有范围查询的排序集、位图、超日志日志、地理空间索引…

【每日运维】RockyLinux8非容器化安装Mysql、Redis、RabitMQ单机环境

系统版本:RockyLinux 8.6 安装方式:非容器化单机部署 安装版本:mysql 8.0.32 redis 6.2.11 rabbitmq 3.11.11 elasticsearch 6.7.1 前置条件:时间同步、关闭selinux、主机名、主机解析host 环境说明:PC电脑VMware Work…

互联网医院系统|互联网医院软件开发|互联网医院搭建方案

随着互联网技术的发展,互联网医院系统逐渐成为医疗服务的新模式,为患者和医生提供了更加方便和高效的医疗体验。下面将介绍互联网医院系统的功能优势。   在线挂号和预约:互联网医院系统可以提供在线挂号和预约功能,患者可以通过…

C++_01_初步认识C++语言

本人博客园亦可见 一、认识 “C语言” 一、首先聊聊什么是语言? 语言是一套具有“语法”、“词法”规律的系统,是思维的工具。   计算程序设计语言是计算机可以识别的语言,用于描述解决问题的方法,供计算机阅读和执行。 语言由…

vue中实现列表自由拖拽排序

元素的 dragable 属性设置 为 true &#xff08;文本 图片 链接 的draggable 属性默认为 true&#xff09;则元素可拖放 <template><transition-group class"list"><uldragstart"dragstart(index)"dragenter"dragenter($event, index)…

【设计模式——学习笔记】23种设计模式——原型模式Prototype(原理讲解+应用场景介绍+案例介绍+Java代码实现)

原型模式 介绍 原型模式指用通过拷贝原型实例创建新的实例&#xff0c;新实例和原型实例的属性完全一致原型模式是一种创建型设计模式工作原理是通过调用原型实例的 clone()方法来完成克隆&#xff0c;原型实例需要实现Cloneable接口&#xff0c;并重写clone()方法需要为每个…

naive-ui的dialog.warning 关闭和阻止关闭

序&#xff1a; 1、如果你卡到 了&#xff0c;博主没写博客&#xff0c;可以在博主的公众号&#xff1a;“程序员野区” 留言。博主看到有时间再帮你去试 2、博主主要讲的怎么 主动关闭dialog和阻止dialog 自动关闭。 注意&#xff01;&#xff01;&#xff01;&#xff01;来&…

Spring Data Redis操作Redis

在Spring Boot项目中&#xff0c;可以使用Spring Data Redis来简化Redis操作&#xff0c;maven的依赖坐标&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></…

5分钟搞懂池化的本质

大家好啊&#xff0c;我是董董灿&#xff01; 在很多与计算机视觉相关的神经网络中&#xff0c;我们往往都会看到池化这一算法&#xff0c;它一般跟在卷积层后面。 神经网络中用到最多的池化方式无外乎是最大池化和平均池化。两者运算接近&#xff0c;区别在于是在kernel范围…

在使用《快递批量查询高手》时从TXT文本导入的快递单号出现乱码如何解决。

在日常 工作中&#xff0c;有没有单号用TXT 文档保存吗&#xff1f;那么没有出现这种情况呢&#xff0c;打开TXT文档进去看都是正常没有问题&#xff0c;一但导入软件中就出现乱码的&#xff1f;遇到这个种情况需要什么解决呢&#xff1f;小编今天就教 您一招解决好方法&#x…

电脑微信空间占用简便清理

1、打开电脑版微信、点击左下角的三根横线 2、点击左侧的“设置” 3、弹出层左侧点击“通用设置”->“存储空间管理” 4、点击清理缓存&#xff0c;或者管理 5、点击“管理”后&#xff0c;根据选择的筛选条件&#xff0c;勾线需要清理的&#xff0c;最后点击清理

WormGPT – 网络犯罪分子用来犯罪的人工智能工具

WormGPT – 网络犯罪分子用来发起商业电子邮件泄露攻击的生成式人工智能工具 前言 什么是蠕虫GPT&#xff08;WormGPT&#xff09; WormGPT是基于EleutherAI于2021年创建的大型语言模型GPT-J的AI模型。它具有无限的字符支持、聊天记忆保留和代码格式化功能。 如果未部署适当…

C#|无法打开cs文件设计窗口

报错信息&#xff1a;To prevent possible data loss before loading the designer, the following errors must be resolved: 解决方案&#xff1a;实不相瞒我把项目解决方案名称改短了就可以了。。有其他原因或者解决方案望不吝赐教。。

electron dialog.showMessageBox使用案例

electron 版本&#xff1a;25.3.1 index.html <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>Hello World!</title><meta http-equiv"Content-Security-Policy" content"script-src self unsa…

学好Elasticsearch系列-索引的CRUD

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 文章目录 创建索引删除索引查询数据添加 & 更新数据cat命令公共参数 常用命令aliases 显示别名allocation 显示每个节点的分片数和磁盘使用情况count 显示整个集群或者索引的文档个数fielddata 显示每个节…

计算机视觉(三)未有深度学习之前

文章目录 图像分割基于阈值、基于边缘基于区域、基于图论 人脸检测Haar-like特征级联分类器 行人检测HOGSVMDPM 图像分割 把图像划分成若干互不相交的区域。经典的数字图像分割算法一般是基于灰度值的两个基本特征之一&#xff1a;不连续性和相似性。 基于阈值、基于边缘 基于…

Vert.x整合MongoDB实现通用增删改查

文章目录 前言一、框架搭建二、代码编写1.MongoDB连接2.通用CRUD3.HTTP服务 总结 前言 最近在学习MongoDB的基本功能&#xff0c;只看文档过于无趣了&#xff0c;于是用Vert.x写了个demo加深印象&#xff0c;也在此记录一下。 一、框架搭建 Vert.x使用的版本是4.4.4&#xff…

《论文阅读》具有特殊Token和轮级注意力的层级对话理解 ICLR 2023

《论文阅读》具有特殊Token和轮级注意力的层级对话理解 前言简介问题定义模型构建知识点Intra-turn ModelingInter-turn Modeling分类前言 你是否也对于理解论文存在困惑? 你是否也像我之前搜索论文解读,得到只是中文翻译的解读后感到失望? 小白如何从零读懂论文?和我一…

MySQL事务

目录 前言 1.为什么存在事务 2.什么是事务 3.事务的版本支持 4.事务提交方式 5.事务常见操作方式 6.事务隔离级别 6.1如何理解隔离性 6.2隔离级别 6.3隔离性的查看与设置 6.4读未提交 6.5读提交 6.6可重复读 6.7串行化 7.多版本并发控制 7.1 3个记录隐藏列字段…