springboot WebFilter+@Component urlPatterns 全部拦截

问题描述
@WebFilter(filterName = “ssoFilter”,urlPatterns = “/*”)配置

@Order中的value越小,优先级越高。
解决方法一:
在springboot启动类上添加
@ServletComponentScan(basePackages = “com.package.path”)

解决方法二:
手动配置bean(推荐这种方式,可以在FilterRegistrationBean里设置Order)不需要@WebFilter注解

package com.zhkj.saas.ims.lnterceptor;import com.zhkj.saas.ims.controller.ProxyController;import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;/*** @author lvyuanjun* @date 2023/4/26 15:27*/
public class ChannelFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {try {ServletRequest requestWrapper = null;if (request instanceof HttpServletRequest) {HttpServletRequest req = (HttpServletRequest) request;String requestURI = req.getRequestURI();boolean state = ProxyController.REQUEST_URI_DATA_AUTH_LIST.contains(requestURI);if(state){requestWrapper = new RequestParameterWrapper(req);}}if (requestWrapper == null) {chain.doFilter(request, response);} else {chain.doFilter(requestWrapper, response);}} catch (IOException e) {e.printStackTrace();} catch (ServletException e) {e.printStackTrace();}}@Overridepublic void destroy() {}
}
@Configuration
public class WebAuthFilterConfig {@Beanpublic FilterRegistrationBean webAuthFilterRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();registration.setFilter(loginFilter());registration.setName("ChannelFilter");registration.addUrlPatterns("/spu/*");registration.setOrder(0);return registration;}@Beanpublic Filter channelFilter() {return new ChannelFilter();}
}

尝试了如下几种情况:

  1. Filter 实现类 + @WebFilter + @ServletComponentScan:正常urlpattern的Filter
  2. Filter 实现类 + FilterRegistrationBean构造 + @Configuration:正常urlpattern的Filter,并且可以设置Order
  3. 仅仅 Filter实现类 + @Component :会注册一个urlpattern 为 /*的过滤器
  4. 通过1、2、3可以得知,只要在Filter实现类上增加 @Component ,就会导致 1个正常urlpattern的filter+1个拦截/*的filter(由于@Component注解导致)

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

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

相关文章

XiaodiSec day025 Learn Note 小迪安全学习笔记

XiaodiSec day025 Learn Note 小迪安全学习笔记 记录得比较凌乱,不尽详细 day25 sql 注入 知识点 mysql 注入 mssql 注入 postgreSQL 注入 详细点: access 无高权限注入点,智能暴力猜解,不像 mysql 中的 schema mysql,postgr…

新质生产力应用场景深度分析,再塑行业格局

新质生产力应用场景深度分析 技术突破、要素创新配置和产业深度转型升级,催生“新质生产力”定义:新质生产力是由技术革命性突破、生产要素创新性配置、产业深度转型升级而催生的当代先进生产力,它以劳动者、劳动资料、劳动对象及 其优化组合…

安卓(Android)安装 Microsoft Authenticator 搞定 2FA 验证

现在越来越多网站强制 2FA 验证了,Microsoft Authenticator 是一个兼容性很强的 2FA 应用 app,如果能够安装它,可以解决绝大部分的 2FA 验证问题。 但是,在国内如果你用苹果手机还好,如果是用安卓(Android…

【御控物联网平台】物联网平台常见通讯协议

随着物联网(InternetofThings,IoT)的快速发展,越来越多的设备和传感器连接到网络,使得数据的传递和交互变得更加智能化和高效化。在实现这种智能化和高效化的数据交互,过程中,各种不同的通信协议…

PROSAIL模型前向模拟与植被参数遥感提取代码实现

原文链接:PROSAIL模型前向模拟与植被参数遥感提取代码实现https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247602140&idx7&sn7c4ca9239865d536ba81ba4c26a34031&chksmfa820e3bcdf5872d540c0dfe8c533c8696c8b4658427aab254f246a739f96b36bc37…

使用代理绕过网站的反爬机制

最近在尝试收集一些网络指标的数据, 所以, 我又开始做爬虫了。 :) 我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误…

java 学习一

jdk下载地址 配置环境变量

【数学归纳法 组合数学】容斥原理

问题提出 有n个条件,要求不重复统计满足一到n个条件的所有可能数。 容斥原理 要计算几个集合并集的大小,我们要先将所有单个集合的大小计算出来,然后减去所有两个集合相交的部分,再加回所有三个集合相交的部分,再减…

电子签名在人力资源中的应用:让HR工作更高效

人力资源(HR)行业是电子签领域的重要应用之一,它可以在以下场景中使用电子签: 1. 在招聘流程中,HR部门可以利用电子签名工具来完成与招聘候选人之间的任何文件签署操作。例如,维护人才库数据库、简历、面试…

HTML不常用的文本标签

1.标签如下&#xff1a; 代码及相关内容 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>不常用的文…

web server apache tomcat11-11-Jasper 2 JSP Engine

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

每日一练 | 华为认证真题练习Day219

1、通常用于控制数据流如何出AS的BGP属性是&#xff1a; A. AS-Path B. Nexthop C. Local-Preference D. MED 2、一种路由协议在引入其他路由协议时&#xff0c;为了只引入一部分满足条件的路由信息&#xff0c;和对所有引入的路由信息的某些属性进行设置&#xff0c;那么只…

中医药性笔记

目录 当归黄芪党参白术甘草茯苓半夏陈皮升麻柴胡 当归 补血。 当归&#xff0c;腾讯医典 黄芪 土金之药。 补中气的同时补肺气。益卫固表、利水消肿、 腾讯医典黄芪 党参 土金之药。健脾益肺&#xff0c;生津养血。 党参补气之力弱于人参、用于脾肺气虚的轻症。 党…

[2024更新]如何从Android恢复已删除的相机照片?

相信大家都经历过Android手机误删相机图片的经历。您是否正在寻找一种可行的方法来挽救这些丢失的照片&#xff1f;如果这是你迫切想解决的问题&#xff0c;那么这篇文章绝对可以帮助你。然而&#xff0c;与其考虑如何从Android恢复已删除的相机照片&#xff0c;我们更愿意建议…

ETL简介以及使用ETL(Kettle)进行数据接入的具体例子

目录 ETL介绍 ETL简介 ETL包含的三部分 ETL基本概念 ETL资源库 ETL变量 业务表梳理以及接入规划 数据接入流程 业务表梳理 ETL任务规范 接入规划 数据接入中的方便工具 具体例子 导出生产表信息 1、ORACLE 2、MYSQL ETL数据增量抽取任务开发 1、ORACLE通用流程…

Linux 网络编程

引入: 进程间的通信 - 特点: 依赖 Linux内核. --> 缺陷: 无法多机通信 多机通信 -- 比如 Android IOS Linux之间的通信组合 网络编程: 1.地址: a.IP地址 b.端口号 2.数据: 需要协议传输协议(数据格式)&#xff08;TCP UDP HTTP&#xff09; &#xff0c;其他协议&am…

2024最新Java面试宝典(史上最全,BAT大厂面试必备,用心看完这一篇就够了!)

&#x1f680; 作者 &#xff1a;“二当家-小D” &#x1f680; &#x1f680; 博主简介&#xff1a;⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人&#xff0c;8年开发架构经验&#xff0c;精通java,擅长分布式高并发架构,自动化压力测试&#xff0c…

20240416,深拷贝浅拷贝,对象初始化和清理,对象模型和THIS指针

哈哈哈乌龟越狱了 目录 2.5 深拷贝&浅拷贝 2.6 初始化列表 2.7 类对象作为类成员 2.8 静态成员 2.9 成员变量和成员函数分开存储 2.10 THIS指针的用途 2.11 空指针访问成员函数 2.12 COSNT修饰成员函数 2.5 深拷贝&浅拷贝 浅拷贝&#xff1a;简单的赋值拷贝…

lucene

参考&#xff1a;Lucene5.5学习(2)-Lucene全文检索的基本原理-腾讯云开发者社区-腾讯云 1、lucene是一个搜索引擎工具包&#xff0c;不是一个完整的搜索引擎。 2、名称解释&#xff1a; Document&#xff1a;文档 Field&#xff1a;文档的某个属性 Analyzer&#xff1a;分…

二次封装el-carousel

我们创建了一个名为MyCarousel的组件,它接受el-carousel的一些常用属性作为props,并默认提供了一些值。我们还通过setup函数返回了所有props,以便它们可以在模板中被使用。 1.MyCarousel.vue组件 <!-- 轮播图片 --> <template><div class="carousel&q…