这个讨论是对之前文章的扩展,用于描述Spring Security在Servlet身份验证中使用的主要架构组件。
组件 | 描述 |
---|---|
SecurityContextHolder | SecurityContextHolder是Spring Security存储已认证用户详细信息的位置。 |
SecurityContext | 从SecurityContextHolder获取,包含当前认证用户的认证信息。 |
Authentication | 可以是传递给AuthenticationManager以提供用户提供的凭据进行认证,也可以是来自SecurityContext的当前用户认证信息。 |
GrantedAuthority | 授予给认证主体的权限(例如角色、范围等)。 |
AuthenticationManager | 定义Spring Security的过滤器如何执行认证的API。 |
ProviderManager | AuthenticationManager的最常见实现。 |
AuthenticationProvider | 由ProviderManager用于执行特定类型的身份验证。 |
使用AuthenticationEntryPoint请求凭据 | 用于从客户端请求凭据(例如重定向到登录页面,发送WWW-Authenticate响应等)。 |
AbstractAuthenticationProcessingFilter | 用于认证的基本过滤器。这也很好地展示了认证的高级流程以及各个组件如何协同工作。 | </