oauth2 杂谈

﹥>﹥吖頭↗ 提交于 2020-05-05 18:34:01

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

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

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

1,认证流程

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

而AuthenticationManager 又是靠DaoAuthenticationProvider 来干活,

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

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

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

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

 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!