Spring Security 用户认证全解析
1. Spring Security 认证基础
在 Spring Security 框架中,认证过程的核心在于 SecurityContext 中存在有效的 Authentication 令牌。在请求处理期间,只要能从 SecurityContextHolder 访问到的 SecurityContext 中包含有效的 Authentication 令牌,Spring Security 就能正常工作。不过,Spring Security 并不关心这个有效令牌是如何被放入 SecurityContext 对象中的。
每次请求结束时,SecurityContextPersistenceFilter 会将当前的 SecurityContext 存储在 HttpSession 中,然后清除 SecurityContextHolder,直到当前用户的下一个请求到来。
认证过程由过滤器链中 AbstractAuthenticationProcessingFilter 的具体实现触发,并由 AuthenticationManager 对象在幕后进行协调。下面将详细介绍认证过程中的失败和成功登录流程。
2. 登录流程分析
2.1 登录失败流程
当请求访问受保护资源时,过滤器链末端的 FilterSecurityInterceptor 会拦截该请求,并将访问控制委托给 AccessDecisionManager。AccessDecisionManager 是授权的协调者,当访问控制检查失败时,它会抛出 org.springframework.security.access
超级会员免费看
订阅专栏 解锁全文
1818

被折叠的 条评论
为什么被折叠?



