因为公司用oauth2 来认证和鉴权。就花了点时间了解这个框架。总的来说,这个框架还是比较重的并且难以理解
主要是它是靠过滤器的,很多都需要配置。可以通过properties和java代码来配置,很多时候我们都不知道它到底是这么回事
但经过学习,我觉着只要知道它是利用过滤器很多东西,就能简单点了
1,认证流程

从图中,我们可以知道UsernamePasswordAuthenticationFilter 就是封装请求的,他干的事有限,靠的是AuthenticationManager 来认证
而AuthenticationManager 又是靠DaoAuthenticationProvider 来干活,
认证就是根据username查询用户信息,这步需要开发人员做但密码比对这步需要security来做,就是框架将原密码进行加密,然后和数据库的密码比对。成功就将认证信息保存到SecurityContextHolder,
这是个ThreadLocal ,理解这点有利于我们理解security。
这样就引入了SecurityContextPersistenceFilter 由它来将认证信息放入theadlocal,当方法结束后就移除
在认证时,可以顺便将用户的权限查出,并放入theadlocal中

来源:oschina
链接:https://my.oschina.net/u/3574106/blog/4267459