SpringSecurity使用思路(多种认证方式单一或多种搭配)
基于springsecurity4 springsecurity5的特性过几天再研究
1.表单认证(springSecurity默认实现)
在请求之前,使用usernamePasswordAuthenticationFilter进行表单的认证
1.1添加验证码
添加一个过滤器在usernamePasswordAuthenticationFilter之前,进行验证码的验证
1.2添加记住我功能
使用springsecurity自带的RemenbermeAythenticationFilter,该过滤器在usernamePasswordAuthenticationFilter的之后
2.自定义验证码之短信验证
我们的目的是需要短信验证和表单验证同时存在,所以对于表单认证的流程我们不能再去打乱配置。因此,我们需要建立新的一套认证流程。表单登陆的接口就提交到表单认证过滤器,
短信登陆的接口则提交到短信认证的过滤器。
第一步:
依葫芦画瓢,照着usernamePasswordAuthenticationFilter的样子写出我们自己定义的短信验证过滤器,拦截来自短信认证的请求。
第二步:
写自己的MsgAuthenticationProvider(过滤器需要传递给这个“认证供应者”进行认证处理),需要实现springsecurity框架内的AuthenticationProvider。
第三步:
写配置文件,将自定义认证方式加入springsecurity框架内.
写自己的配置文件类,需要继承
SecurityConfigurerAdapter<DefaultSecurityFilterChain, HttpSecurity>