security密码验证原理

用户名和密码被放到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 中


你可能感兴趣的:(String,Security,存储,Authentication,token)