最近接到需求,需要通过验证加密签名,让第三方请求访问 spring-MVC 项目中的资源。 然后想起最近学的 spring-security 大概的思路就是继承 spring-security 里面的WebSecurityConfigurerAdapter 然后在覆写 configur
然后在把自定义的 Filter 加进来就完事了
但是作为一个 2006 年的老项目,这样显然是不适用的
下面给大家介绍一下、如何在 spring-MVC 中增加自定义 Filter
首先第一步
1、新建我们自己的 Filter 类 这里我们叫做 SignFilter(通过签名的形式校验请求) 并继承 authenticationProcessingFilter 中的 Filter 注意此处继承的 Filter 并不需要引入而是通过 plugin.xml 的形式去配置。
2、配置我们的 Filter 在 WEB-INF 下面新建两个 xml 文件,分别为 spring.xml 与 plugin.xml
spring.xml 的作用是把我们写的 SignFilter 注册到 spring 容器中。
plugin.xml 则是配置 SignFilter 父类、这也就是刚刚为什么说不用继承的原因
3、配置好我们的 SignFilter 以后就可以通过覆写 doFilter 来完成签名认证,从而让第三方访问项目中的资源了。
至于如何生成加密签名,可以看下这篇文章。 juejin.cn/post/684490…