用户名和密码被放到UsernamePasswordAuthenticationToken中,
-(GrantedAuthority,反应,在应用程序范围你,赋予主体的权限。将取得用户权限,并放入token中)
把token放入AuthenticationManager中进行验证,成功则返回一个
带有用户名,密码和权限列表的完整信息的Authentication。
-(UserDetails,用于构建Authentication 对象。)
--(UserDetailsService,创建一个UserDetails,传递一个String 类型的用户名(或者证
书ID 或其他)。)
然后通过SecurityContextHolder.getContext().setAuthentication(Authentication)放入
SecurityContext中,用于以后的验证。
(SecurityContextHolder,提供几种访问SecurityContext 的方式。
SecurityContext,保存Authentication 信息,和请求对应的安全信息。)
SecurityContext存储于HttpSession中。
AuthenticationProvider,验证的时候会加载对应的UserDetails 对象- 特别是包含的GrantedAuthority(权限)。
如果成功,则返回一个成功验证,保存到SecurityContext 中