目录
1. 前言
这篇文章的内容大部分来自官方文档,如果你英语还可以,我强烈建议你去spring官网进行学习。
正文通过列举主要类的方式,展开身份认证的介绍。
2. 主要类
2.1. SecurityContextHolder
使用ThreadLocal存储"已通过身份认证的用户的详细信息"。
存储内容简图
2.2. SecurityContext
从SecurityContextHolder获取,内部包含一个Authentication对象。
2.3. Authentication
两个用处
- 作为AuthenticationManager的输入,提供进行身份认证的凭证。
- 代表已通过身份认证的用户,从SecurityContext中获取。
包含的信息
- principle 当事人,用于识别用户,例如进行身份认证时携带用户名和密码
- credentials 凭证,通常情况会是密码,身份认证结束后被清除掉
- authorities 权限,授予的权限
2.4. GrantedAuthority
代表用户被授予的权限。
2.5. AuthenticationManager
提供API,用于定义如何进行身份认证。
返回的Authentication实例应被设置到SecurityContextHolder中。
2.6. ProviderManager
ProviderManager是常见的AuthenticationManager实现类,代表由Authenti