spring security 工作原理

一、结构概览

spring security 解决的问题就是“安全访问控制”,而这些无法避免对请求进行拦截,所以可以想到其使用的就是常见的Filter链。

  • SecurityContextPersistenceFilter:守门员,出口也是入口,初始化相关框架环境
  • UsernamePasswordAuthernticationFilter:账号密码验证 ->AuthenticationManagert
  • FilterSecurityInterceptor:授权验证->AccessDecisionManager
  • ExecptionTranslationFilter: 异常拦截

二、认证流程

流程图:

根据上面的流程可以知道,使用者只要提供一个UserDeatilsService里面封装了查询出来的用户。

简单的自定义实现UserDetailsService

加密工作方式:

三、授权流程 

流程图:

基于投票机制的三个实现类:

  • AffirmativeBased:一个赞成就通过,都反对也通过(默认)
  • ConsensusBased:少数服从多数
  • UnanimousBased:一个反对都反对,通过必须全部赞成

经过上面的分析,可以得出结论,一般情况下,在整个spring security框架中,认证需要使用者参与的部分就是用户信息的查询(UserDetailsService的实现),而授权的部分几乎不需要使用者进行参与,只要给用户绑定权限,资源分配权限就可以委托给框架进行校验了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值