springsecurity自定义登录 运行时验证流程
时间: 2023-09-22 15:13:49 浏览: 106
Spring Security 自定义登录的运行时验证流程如下:
1. 用户提交登录请求,浏览器将用户名和密码发送到后台服务端。
2. 后台服务端通过过滤器(如 UsernamePasswordAuthenticationFilter)拦截该请求,获取用户名和密码信息,并封装成一个 Authentication 对象。
3. Authentication 对象交给 AuthenticationManager 进行认证验证。
4. AuthenticationManager 通过实现类 ProviderManager 中的 Provider 集合,查找一个支持当前 Authentication 对象的 Provider 进行认证。
5. Provider 进行具体的认证逻辑,并返回一个 Authentication 对象。如果认证成功,该 Authentication 对象至少包含了用户的权限信息(GrantedAuthority)。
6. AuthenticationManager 将认证成功的 Authentication 对象返回给过滤器,过滤器通过调用 setAuthentication 方法将 Authentication 对象绑定到当前的 SecurityContext 中。
7. 认证成功后,用户就可以访问受保护的资源了。
需要注意的是,这只是 Spring Security 自定义登录的一个简单流程,实际上还有很多细节和配置需要关注,比如如何自定义认证 Provider、如何配置登录成功和失败的处理器等。
阅读全文