Spring Security
This content is not available in your language yet.
Spring Security 把安全控制拆成可组合的过滤器、认证管理器、授权管理器和上下文策略。
本册问题地图
Section titled “本册问题地图”Spring Security 的核心不是“加几个注解”,而是把请求身份、认证方式、授权决策和上下文传播组织成一条过滤链:
- 请求如何选中唯一的
SecurityFilterChain? - 凭证如何被转换成 Authentication,再由 Provider 链处理?
- 认证成功后,SecurityContext 如何保存并跨线程传播?
- 授权决策为什么从固定 voter 模式走向
AuthorizationManager? - 认证失败和授权拒绝为什么是两条不同的响应路径?
读完整册后,应当能从请求进入过滤器开始,解释“当前用户是谁、凭证是否有效、是否有权限、结果如何写回响应”。
| 项 | 值 |
|---|---|
| 仓库 | spring-projects/spring-security |
| 本地路径 | E:\source\java\spring\spring-security |
| 分支 | main |
| Commit | 82241b6cb8(2026-08-13) |
| 最近 tag | 7.1.0 |
本册坐标均基于上述 commit。
| 模块 | 职责 | 入口 |
|---|---|---|
core |
Authentication、Authorization、SecurityContext | ProviderManager |
web |
Servlet/WebFlux 过滤器 | FilterChainProxy |
config |
DSL 与 Bean 装配 | HttpSecurity |
WebSecurityConfiguration生成SecurityFilterChain。HttpSecurity构建并排序 Filter。FilterChainProxy选择链并执行。ProviderManager完成认证。AuthorizationFilter完成授权。SecurityContextHolderStrategy管理身份生命周期。
- 整体架构
- 过滤器链与 SecurityFilterChain
- 认证流程与 AuthenticationManager
- 授权决策与 AuthorizationManager
- SecurityContext 存储与传播
- 面试专题