Spring Security 自定义登录认证
Spring Security 自定义登录认证(扩展多种方式)
https://gitee.com/markix/spring-security-multiple-auth
自定义登录认证
- 用户名+密码
- 工号+密码
- 手机号+验证码
- 邮箱+验证码
核心组件
- NameAuthProcessor 用户名+密码认证
- NoAuthProcessor 工号+密码认证
- EmailAuthProcessor 邮箱+验证码认证
- PhoneAuthProcessor 手机号+验证码认证
封装成一个通用框架
spring-security-login-extension
实现思路
- 自定义AuthenticationFilter 提供认证接口,用于构建自定义AuthenticationToken,通过自定义AuthenticationProvider对自定义AuthenticationToken进行认证
- 将 Filter 和 Provider 组装到过滤器链中,使之生效。
- 放行必要的路径
自定义认证抽象层
- AuthProcessor:认证处理器接口,用于抽象不同认证方式!
- MultipleAuthenticationFilter:认证过滤器,维护多个认证处理器 List,支持多种认证
- MultipleAuthenticationProvider:认证提供者,实际上将认证代理给 AuthProcessor
- MultipleAuthenticationFilterConfigurer:自定义认证配置器,需要在 SecurityConfiguration 应用!
示例
每种认证方式只需要实现 AuthProcessor 接口
见 spring-security-login-extension-samples 项目
还没有评论,来说两句吧...