oauth2 杂谈

原创
05/05 18:01
阅读数 59

因为公司用oauth2 来认证和鉴权。就花了点时间了解这个框架。总的来说,这个框架还是比较重的并且难以理解

主要是它是靠过滤器的,很多都需要配置。可以通过properties和java代码来配置,很多时候我们都不知道它到底是这么回事

但经过学习,我觉着只要知道它是利用过滤器很多东西,就能简单点了

1,认证流程

从图中,我们可以知道UsernamePasswordAuthenticationFilter 就是封装请求的,他干的事有限,靠的是AuthenticationManager 来认证

而AuthenticationManager 又是靠DaoAuthenticationProvider 来干活,

认证就是根据username查询用户信息,这步需要开发人员做但密码比对这步需要security来做,就是框架将原密码进行加密,然后和数据库的密码比对。成功就将认证信息保存到SecurityContextHolder,

这是个ThreadLocal ,理解这点有利于我们理解security。

这样就引入了SecurityContextPersistenceFilter 由它来将认证信息放入theadlocal,当方法结束后就移除

在认证时,可以顺便将用户的权限查出,并放入theadlocal中

 

oauth2 认证端点
AuthorizationEndpoint
oauth2 token 端点
TokenEndpoint
oauth2 过滤器
OAuth2AuthenticationProcessingFilter

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部