# Spring Security 自定义登录认证 **Repository Path**: markix/spring-security-multiple-auth ## Basic Information - **Project Name**: Spring Security 自定义登录认证 - **Description**: 项目封装了登录认证抽象层,支持不同认证方式的扩展。 案例实现了 用户名+密码、工号+密码、手机号+验证码、邮箱+验证码等认证方式。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-09-08 - **Last Updated**: 2023-11-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: SpringSecurity, SpringBoot, Spring ## README # Spring Security 自定义登录认证(扩展多种方式) ## 自定义登录认证 - 用户名+密码 - 工号+密码 - 手机号+验证码 - 邮箱+验证码 ## 实现思路 - 自定义AuthenticationFilter 提供认证接口,用于构建自定义AuthenticationToken,通过自定义AuthenticationProvider对自定义AuthenticationToken进行认证 - 将 Filter 和 Provider 组装到过滤器链中,使之生效。 - 放行必要的路径 ## 核心组件 ## 自定义认证抽象层 > 代码位于此包下:com.markix.security.extend - AuthProcessor:认证处理器接口,用于抽象不同认证方式! - MultipleAuthenticationFilter:认证过滤器,维护多个认证处理器 List,支持多种认证 - MultipleAuthenticationProvider:认证提供者,实际上将认证代理给 AuthProcessor - MultipleAuthenticationFilterConfigurer:自定义认证配置器,需要在 SecurityConfiguration 应用! ## 具体认证实现 - NameAuthProcessor 用户名+密码认证 - NoAuthProcessor 工号+密码认证 - EmailAuthProcessor 邮箱+验证码认证 - PhoneAuthProcessor 手机号+验证码认证