一、思路
登录,首先有失败与成功两种情况
我们需要一个登录过滤器,进行两种情况的返回
所以,我们得知道
SpringSecurity
监听/login
是怎样的。
二、UsernamePasswordAuthenticationFilter
- 看到这个过滤器,会先过滤
/login
接口,并获取两个主要的参数
- 这个过滤器的方法,有一个我们很需要的
尝试认证attemptAuthentication
方法
- 判断一波post请求,然后对请求的参数进行认证
三、AbstractAuthenticationProcessingFilter
- 既然有了认证,那么就需要看看
SpringSecurity
其中默认的认证成功的方法了,UsernamePasswordAuthenticationFilter继承了AbstractAuthenticationProcessingFilter
,所以,可以使用他这里的方法,其中的重点认证成功
- 将这个方法重写到我们自己的过滤器中就ok了,可以看到
successfulAuthentication
这个方法中的参数Authentication authResult
,认证后的返回,SpringSecurity这里怎么操作咱就不管了,反正我们需要这个返回(它是调用了我们自己接口去查完数据的结果) - 为什么呢?我们曾经说个这个类,他会去做什么(不知道就去看以前的若依RuoYi-Vue代码学习一—【DEBUG】登录验证时,Spring Security怎么帮我们查的用户信息吧)
最后
到这也差不多动了,至于写这个的想法是:遇到的项目中没有登录的接口却却实现了登录有点蒙,于是整一整,免得看到别不懂是发生了啥
(*^▽^*)!!!