SpringSecurity的执行流程
时间: 2023-10-22 13:02:22 浏览: 70
Spring Security是一个基于Spring框架的安全框架,它提供了一系列的安全服务和机制,可以帮助我们实现各种安全需求,比如身份认证、访问控制、安全日志等。
Spring Security的执行流程如下:
1. 客户端发送请求:客户端通过浏览器或者移动端向服务器发送请求。
2. 进入过滤器链:当请求进入到服务器后,会先经过Spring Security的过滤器链,这个过滤器链有多个过滤器,每个过滤器都有不同的功能,比如身份认证、访问控制等。
3. 执行身份认证:在过滤器链中,如果存在身份认证的过滤器,则会执行身份认证,比如UsernamePasswordAuthenticationFilter过滤器,它会从请求中获取用户名和密码,然后进行身份认证。
4. 认证成功/失败处理:如果身份认证成功,则会生成一个安全上下文对象,该对象包含了当前用户的信息和权限等,然后会将该安全上下文对象存储到SecurityContextHolder中。如果身份认证失败,则会返回一个错误信息。
5. 执行访问控制:在过滤器链中,如果存在访问控制的过滤器,则会执行访问控制,比如AccessDecisionManager决策管理器,它会根据当前用户的安全上下文对象和请求的资源进行访问控制决策。
6. 访问控制成功/失败处理:如果访问控制决策成功,则会继续执行后续的操作,比如请求资源的处理。如果访问控制决策失败,则会返回一个错误信息。
7. 返回响应:最后,服务器会将响应结果返回给客户端,结束整个请求响应流程。
以上就是Spring Security的执行流程,通过这个流程,我们可以了解到Spring Security是如何进行身份认证和访问控制的。
阅读全文