springsecurity整体流程
时间: 2023-05-23 07:07:31 浏览: 101
Spring Security是一个基于Spring Framework的安全框架,提供了企业级应用程序的安全解决方案,在保护Web应用程序方面非常有用。Spring Security使用声明式配置,可以轻松地配置各种认证(Authentication)和授权(Authorization)方式,可保护Web应用程序。
Spring Security执行的核心流程如下:
1. 认证过滤器链
- 用户访问Web应用程序时,请求将首先到达认证过滤器链。
- 认证过滤器链由多个过滤器组成,每个过滤器都执行不同的操作。
- 每个过滤器都根据规则判断是否需要执行下一个过滤器,直到认证成功或链中的过滤器执行完成。
2. 身份验证管理器
- 在过滤器链检查用户提供的凭据之前,需要一个身份验证管理器。
- 身份验证管理器是负责管理和验证用户凭据的组件。
- 身份验证管理器管理一组认证提供者,每个提供者都可以使用不同的身份验证协议。
3. 认证提供者
- 认证提供者是一个与身份验证管理器合作的组件。
- 每个认证提供者都对特定类型的身份验证进行处理,例如用户名和密码,证书等。
- 认证提供者在完成身份验证后将身份验证对象返回给身份验证管理器。
4. 用户详细信息服务
- 用户详细信息服务是用于获取用户详细信息的组件。
- 使用Spring Security时,您必须实现自己的用户详细信息服务或使用默认的实现。
- 当用户完成身份验证后,用户详细信息服务将返回用户详细信息,例如用户角色和权限。
5. 授权
- 授权是验证用户是否有权限执行特定操作的过程。
- 在Spring Security中,授权由访问决策器完成。
- 访问决策器根据用户的安全信息和应用程序中的授权规则计算用户的访问权限。
- 如果用户具有足够的权限,则可以执行请求的操作,否则访问将被拒绝。
6. 安全上下文的创建和管理
- 安全上下文是存储用户身份验证和授权数据的地方。
- 在Spring Security中,安全上下文由安全上下文持有者进行管理。
- 安全上下文持有者允许您从任何地方访问和更新安全上下文。
- 在处理用户请求之前,安全上下文持有者会创建安全上下文。
阅读全文