
过滤器
文章平均质量分 50
过滤器
不愿放下技术的小赵
这个作者很懒,什么都没留下…
展开
-
过滤器实现全局防SQL注入
目录SqlInjectFilter.javaMyRequestWrapper.java场景:公司渗透测试,发现了输入框有SQL注入风险,于是进行修改。解决方案:增加全局过滤器,对请求参数中存在SQL过滤器的参数进行提示,主要增加了两个类:SqlInjectFilter,过滤器;MyRequestWrapper,用于过滤器中获取POST请求参数。SqlInjectFilter.javaimport com.alibaba.fastjson.JSONObject;import com.原创 2021-10-28 13:49:01 · 5324 阅读 · 3 评论 -
Filter 重复读取 request 的POST请求参数
需求: 在Filter中获取POST请求参数只能调用request.getInputStream()、request.getReader()的方式把请求体读出来,可是会抛出如下异常:java.lang.IllegalStateException: getReader() has already been called for this request原因: request请求体只能读取一次,多次读取会抛异常,在过滤器中读取的话,在Controller中再拿请求体的字节流的时候就会抛异常。.原创 2021-06-25 13:49:12 · 2477 阅读 · 0 评论 -
SpringBoot使用过滤器时依赖注入失效
场景:创建过滤器进行Token过滤时,无法获取实例化的redisUtil和userService。原因分析:在过滤器中使用@Autowierd或者@Resource进行依赖注入是行不通的,因为:Filter比Servlet先加载,用依赖注入是不行的,需要通过WebApplicationContext获取BeanSpring加载顺序:解决方案:// 获取上下文WebApplicationContext applicationContext = WebApplicationContextU原创 2021-06-17 14:39:32 · 1122 阅读 · 0 评论 -
SpringBoot 全局异常捕获不到Filter中的异常
场景:SpringBoot项目中,定义了全局异常捕获类,但是当在Filter校验Token失败后抛出异常时,无法捕获异常。原因分析:SpringBoot中,通过@ControllerAdvice+@ExceptionHandler实现的全局异常捕获类,只捕获Controller层的异常,众所周知,Filter是在Controller层之前。解决方案:1.新增异常过滤器Filter,将异常转移到Controllerimport lombok.extern.slf4j.Slf4j;imp原创 2021-06-17 10:44:45 · 5529 阅读 · 4 评论