spring security(二)

图形验证码和短信登录

1.图形验证码

原理(无法改变核心逻辑,用的是spring security的默认流程)

写一个filter对验证码进行逻辑处理。并在BrowserConfig中将自定义filter加在 
UsernamePasswordAuthenticationFilter前面(ValidateCodeFilter extends OncePerRequestFilter);
 OncePerRequestFilter是保证Filter只会被调用一次。

准备( 1.根据随机数生成图片,2.将随机数存到Session中,3.将生成的图片写到接口的响应中)

  自定义图片验证码实体(ImageCode)
  自定义异常(ValidateCodeException extends AuthenticationException(所有认证异常的基类))
  自定义过滤器(ValidateCodeFilter extends OncePerRequestFilter)
  自定义验证码控制器ValidateCodeController()

重构图形验证码接口(思想:以增量的方式去适应变化)

验证码基本参数可配置
验证码拦截的接口可配置
验证码的生成逻辑可配置

验证码基本参数可配置

实现InitializingBean的目的是在其他参数都装载完毕后初始化拦截的urls集合,

验证码拦截的接口可配置
验证码的生成逻辑可配置

记住我功能


2.短信验证码(和用户名密码登录的逻辑不一样,所以就不能用spring security默认的核心处理流程,可以模拟默认的核心处理流程写一套)

开发短信验证码接口
校验短信验证码并登录
重构代码
短信验证码接口模拟表单的核心处理图:

重构代码中的验证码的重构思想:

posted @ 2019-11-11 17:27  cherishDouble  阅读(165)  评论(0编辑  收藏  举报