Spring Security 中获取用户信息的原理与实践
在 Web 应用中,Spring Security 能够在每次请求时识别用户身份并验证权限,核心在于 SecurityContextPersistenceFilter 对 SecurityContext 的管理。本文结合源码解析这一机制的实现原理,并介绍在实际开发中获取用户信息的常用方式。
SecurityContext 的生命周期管理
SecurityContext 是存储用户认证信息的容器,其生命周期由 SecurityContextPersistenceFilter 全程管理,确保每个请求都能获取到当前用户的身份信息。
1. 核心流程:请求到来时加载上下文
当一个请求进入应用时,SecurityContextPersistenceFilter 会执行以下操作:
1 | public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) |