一、Spring Security 是什么?
Spring Security 是一个功能强大且高度可定制的认证和访问控制框架,专注于为 Java 应用程序提供安全服务。
1.1 核心功能
| 功能 | 说明 |
|---|---|
| 认证 (Authentication) | 验证'你是谁' |
| 授权 (Authorization) | 验证'你能做什么' |
| 防护常见攻击 | CSRF、XSS、会话固定等 |
二、技术组成分布
Spring Security 学习重点分布如下:认证机制 (30%)、授权控制 (25%)、过滤器链 (20%)、JWT 集成 (15%)、OAuth2 (10%)。
三、认证流程解析
3.1 请求处理流程
用户请求 -> Security Filter Chain -> 已认证?-> 否 -> 认证过滤器 -> 登录验证 -> 成功?-> 否 -> 返回 401
-> 是 -> 创建 SecurityContext -> 有权限?-> 否 -> 返回 403
-> 是 -> 访问资源
3.2 过滤器链结构
ChannelProcessingFilter -> SecurityContextFilter -> LogoutFilter -> UsernamePasswordAuthenticationFilter -> ExceptionTranslationFilter -> FilterSecurityInterceptor -> Controller
四、快速开始
4.1 添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
4.2 基础配置
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests(auth -> auth
.requestMatchers().permitAll()
.anyRequest().authenticated())
.formLogin(withDefaults())
.httpBasic(withDefaults());
http.build();
}
}


