springboot中对已存在拦截器进行重置的方法

9 篇文章 0 订阅

springboot中对拦截器进行重置的方法

  1. 背景:springboot项目中,依赖一个权限管理的jar包,jar包中通过拦截器对请求进行了拦截验证,而权限验证jar不能进行排除依赖时,如果需要自定义权限验证或校验,应该怎么做呢?

     

 思路和实现:

1.在spring boot启动的过程中,将已注册的拦截器从spring容器中移除,然后新建自定义拦截器,然后注入spring容器。

新建一个类NotSecurity并实现ApplicationContextAware的setApplicationContext方法,在方法中进行bean操作。

2.根据spring boot容器加载顺序,我们可以自定义配置类,在配置类中清除原有的拦截器,然后自定义自己的拦截器。

新建一个NotSecurity类并实现WebMvcConfigurer接口的addInterceptors方法。

  

注意红框中清除原来拦截器的处理,如果不处理,则新的同名拦截器不会覆盖原有拦截器,而是继续添加进拦截器数组中。

还有需要注意的一点是:@AutoConfigureAfter(SecurityConfiguration.class),必须注明本类拦截器配置必须在原拦截器配置之后加载,这一点非常重要。

如果我们添加AutoConfigureAfter注解后配置类的加载顺序不正确,需要在resources文件夹下的MATE-INFO文件夹下的spring.factories文件中添加两个配置类的路径,如下:

 至此,我们就完成了自定义拦截器替代jar包中的拦截器。

声明:转载请说明出处。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值