加入收藏 | 设为首页 | 会员中心 | 我要投稿 通化站长网 (https://www.0435zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 评论 > 正文

SpringSecurity原理剖析

发布时间:2021-03-09 13:58:22 所属栏目:评论 来源:互联网
导读:、技术选型 为何把Spring Secutity作为权限系统的技术选型,主要考虑了以下几个方面: 数据鉴权的能力:Spring Secutity支持数据鉴权,即细粒度权限控制。 Spring生态基础:Spring Secutity可以和Spring生态无缝集成。 多样认证能力:Spring Secutity支持多

、技术选型

  1. 为何把Spring Secutity作为权限系统的技术选型,主要考虑了以下几个方面:
  2. 数据鉴权的能力:Spring Secutity支持数据鉴权,即细粒度权限控制。
  3. Spring生态基础:Spring Secutity可以和Spring生态无缝集成。

多样认证能力:Spring Secutity支持多样认证方式,如预认证方式可以与第三方认证系统集成。
 

权限系统一般包含两大核心模块:认证(Authentication)和鉴权(Authorization)。

  • 认证:认证模块负责验证用户身份的合法性,生成认证令牌,并保存到服务端会话中(如TLS)。
  • 鉴权:鉴权模块负责从服务端会话内获取用户身份信息,与访问的资源进行权限比对。

官方给出的Spring Security的核心架构图如下:
 

核心架构解读:

  • AuthenticationManager:负责认证管理,解析用户登录信息(封装在Authentication),读取用户、角色、权限信息进行认证,认证结果被回填到Authentication,保存在SecurityContext。
  • AccessDecisionManager:负责鉴权投票表决,汇总投票器的结果,实现一票通过(默认)、多票通过、一票否决策略。
  • SecurityInterceptor:负责权限拦截,包括Web URL拦截和方法调用拦截。通过ConfigAttributes获取资源的描述信息,借助于AccessDecisionManager进行鉴权拦截。
  • SecurityContext:安全上下文,保存认证结果。提供了全局上下文、线程继承上下文、线程独立上下文(默认)三种策略。
  • Authentication:认证信息,保存用户的身份标示、权限列表、证书、认证通过标记等信息。
  • SecuredResource:被安全管控的资源,如Web URL、用户、角色、自定义领域对象等。
  • ConfigAttributes:资源属性配置,描述安全管控资源的信息,为SecurityInterceptor提供拦截逻辑的输入。

三、设计原理

通过对源码的分析,我把Spring Security的核心领域模型设计整理如下:

(编辑:通化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读