SpringSecurity的 loginProcessingUrl为什么不能用

前情提要:
我在做一个springsecurity动态鉴权的项目时,
据网上说配置了

                loginProcessingUrl("/login1");

以后 就可以自定义login的请求路径
image
于是我配了,不行!!我请求login1,被当成普通的请求而不是登录的请求,走了token验证的那一条过滤器

于是我问了师傅,两个人看源码看了一个小时
发现是因为我重写了UsernamePasswordAuthenticationFilter
image的原因

我们先来看一下 为什么正常情况下 loginProcessingUrl是可以自定义登录请求url路径的呢

来看security自带的类image
来看里面的loginProceessingUrl方法
image
意思就是 你传入自定义登录url,他帮你设置到this.authFilter的匹配路径里面

根本原因来了 这个this.authFilter根本就没有提供一个set方法,也就是说 我自己写的Filter跟这里的authFilter是两个类
校验用的是我的UsernamePasswordAuthenticationFilter
设置url设置的是自带的这个filter,不是我的filter!!

也就是说 这个设置了url设置了个寂寞 根本没用到

怎么解决?

image
这样配即可!

posted @ 2022-05-19 11:37  三块的可乐  阅读(2024)  评论(0)    收藏  举报