创建和校验验证码架构设计
创建验证码
- 首先配置不拦截验证码创建请求
- 在 ValidateCodeController 中定义创建验证码的入口
- 通过 ValidateCodeProcessorHolder <校验码处理器管理器> 调用不同的 ValidateCodeProcessor <校验码处理器> 进行处理
- AbstractValidateCodeProcessor 是实现了ValidateCodeProcessor 接口的抽象方法
- AbstractValidateCodeProcessor 会调用不同的验证码生成器,如图片验证码、短信验证码等
- ValidateCodeRepository 定义了验证码的存储形式:Session 存储和 Redis 存储
- ImageCodeProcessor处理图片验证码的发送,SmsCodeProcessor 处理短信验证码的发送
校验验证码
- ValidateCodeFilter 校验验证码过滤器 定义在Spring Security 默认过滤器链的前面,会拦截所有需要校验验证码的 url
- ValidateCodeProcessor 会进行校验码的校验