SpringSecurity的基本登录流程

x33g5p2x  于2022-03-25 转载在 Spring  
字(0.8k)|赞(0)|评价(0)|浏览(211)

1.几个重要的成员

1.1 Authentication

1)Authentication对象主要保存用户的一些基本信息,用户名,密码,权限等

2)其下还有多个实现类,UsernamePasswordAuthenticationToken用得最多,每个不同的token登录都会有对应一个AuthenticationProvider,比如UsernamePasswordAuthenticationToken它就有一个AbstractUserDetailsAuthenticationProvider

1.2 AuthenticationProvider

1)AuthenticationProvider接口,认证提供者,提供authenticate和support方法,有多个实现类

1.3 AuthenticationManager

1)AuthenticationManager接口,认证管理者,用于管理AuthenticationProvider,定义了一个authenticate方法,用于做认证

1.4 ProviderManager

1)ProviderManager是AuthenticationManager的实现类,用于管理AuthenticationProvider,定义了一个list来管理

2.基本流程(基于用户名密码登录)

2.1 主要成员

2.1 流程
1)请求来到UsernamePasswordAuthenticationFilter,获取前端传来的用户名和密码,并且调用authenticate方法

2)进入到ProviderManager的authenticate方法,遍历providers

3)进入到AbstractUserDetailsAuthenticationProvider,执行authenticate方法

4)校验用户和密码

5)将用户相关信息存储到authentication对象,并且返回

相关文章