从0到1掌握 Spring Security(第三篇):三种认证方式,按配置一键切换
> 本文是Spring Security系列第三篇,将带你实现内存、JDBC和自定义三种认证方式的无缝切换,只需修改配置文件即可完成认证策略变更!
## 一、为什么需要多种认证方式?
在软件开发的不同阶段,我们需要不同的认证策略:
- **开发阶段**:使用内存认证,快速配置测试账号
- **测试阶段**:连接测试数据库进行认证
- **生产环境**:使用自定义认证服务对接公司用户系统
传统做法需要修改代码并重新部署,效率低下。本文将教你如何实现**配置化切换**三种认证方式!
## 二、三种认证方式核心实现
### 1. 内存认证(In-Memory Authentication)
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig {
// 内存认证配置
@Bean
@ConditionalOnProperty(
name = "security.auth.mode",
havingValue = "IN_MEMORY"
)
public UserDetailsService inMemoryUserDetail