SpringSecurity-身份认证原理

目录

1. 前言

2. 主要类

3. 用户名密码身份认证


1. 前言

这篇文章的内容大部分来自官方文档,如果你英语还可以,我强烈建议你去spring官网进行学习。

正文通过列举主要类的方式,展开身份认证的介绍。

2. 主要类

2.1. SecurityContextHolder

使用ThreadLocal存储"已通过身份认证的用户的详细信息"。

存储内容简图

SpringSecurity-身份认证原理_第1张图片

2.2. SecurityContext

从SecurityContextHolder获取,内部包含一个Authentication对象。

2.3. Authentication

两个用处

  1. 作为AuthenticationManager的输入,提供进行身份认证的凭证。
  2. 代表已通过身份认证的用户,从SecurityContext中获取。

包含的信息

  1. principle 当事人,用于识别用户,例如进行身份认证时携带用户名和密码
  2. credentials 凭证,通常情况会是密码,身份认证结束后被清除掉
  3. authorities 权限,授予的权限

2.4. GrantedAuthority

代表用户被授予的权限。

2.5. AuthenticationManager

提供API,用于定义如何进行身份认证。

返回的Authentication实例应被设置到SecurityContextHolder中。

2.6. ProviderManager

ProviderManager是常见的AuthenticationManager实现类,代表由Authenti

你可能感兴趣的:(security身份认证,spring,security)