spring boot 之 security(八) social
要了解social需要先了解OAuth(授权)的原理
OAuth授权码模式原理图那 social 是什么
social 就是帮我们把 OAuth(授权)的流程封装到了一个 SocialAuthenticationFilter 的过滤器里面,然后把这个过滤器加到 spring security 的过滤器链上。
social 在spring security 过滤器链上的位置
image.pngspring security social 的所需实现
所需实现provider :
ServiceProvider(AbstractOAuth2ServiceProvider) -> 服务提供商,封装了(OAuth授权码模式原理图) 1-6 的流程。
OAuth2Operations(OAuth2Tempalte) -> 封装了(OAuth授权码模式原理图) 1-5的流程,提供了默认的实现 OAuth2Tempalte
Api(AbstractOAuth2ApiBinding) -> 封装了(OAuth授权码模式原理图) 6 的流程,但需要我们自己实现,因为每个操作都不同。
client:
Connection(OAuth2Connection) -> 封装(OAuth授权码模式原理图) 前6步以后获取到的用户信息。Connection由ConnectionFactory创建出来的。
ConnectionFactory(OAuth2ConnectionFactory) -> 负责创建 Connection 的实例,包含了 ServiceProvider 的实例,因为需要经过 ServiceProvider 才能获取到用户信息。
ApiAdapter -> 因为 Connection 获取到的数据结构是不一样的,但又要转换为 Connection 的标准数据结构,所以用 ApiAdapter 做适配。
UsersConnectionRepository(JdbcUserConnectionRepository) -> 操作 DBUserConnection 数据库
DBUserConnection -> 用户保存 第三方用户 和 自己本身用户的对应关系