加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

SpringSecurity原理解析与权限系统设计

发布时间:2022-05-30 09:48:06 所属栏目:安全 来源:互联网
导读:Spring Secutity和Apache Shiro是Java领域的两大主流开源安全框架,也是权限系统设计的主要技术选型。本文主要介绍Spring Secutity的实现原理,并基于Spring Secutity设计基于RBAC的权限系统。 一、技术选型 为何把Spring Secutity作为权限系统的技术选型,
         Spring Secutity和Apache Shiro是Java领域的两大主流开源安全框架,也是权限系统设计的主要技术选型。本文主要介绍Spring Secutity的实现原理,并基于Spring Secutity设计基于RBAC的权限系统。
 
一、技术选型
 
为何把Spring Secutity作为权限系统的技术选型,主要考虑了以下几个方面:
数据鉴权的能力:Spring Secutity支持数据鉴权,即细粒度权限控制。
Spring生态基础:Spring Secutity可以和Spring生态无缝集成。
多样认证能力:Spring Secutity支持多样认证方式,如预认证方式可以与第三方认证系统集成。
 
二、核心架构
 
         权限系统一般包含两大核心模块:认证(Authentication)和鉴权(Authorization)。
 
         核心架构解读:
 
AuthenticationManager:负责认证管理,解析用户登录信息(封装在Authentication),读取用户、角色、权限信息进行认证,认证结果被回填到Authentication,保存在SecurityContext。
AccessDecisionManager:负责鉴权投票表决,汇总投票器的结果,实现一票通过(默认)、多票通过、一票否决策略。
SecurityInterceptor:负责权限拦截,包括Web URL拦截和方法调用拦截。通过ConfigAttributes获取资源的描述信息,借助于AccessDecisionManager进行鉴权拦截。
SecurityContext:安全上下文,保存认证结果。提供了全局上下文、线程继承上下文、线程独立上下文(默认)三种策略。
Authentication:认证信息,保存用户的身份标示、权限列表、证书、认证通过标记等信息。
SecuredResource:被安全管控的资源,如Web URL、用户、角色、自定义领域对象等。
ConfigAttributes:资源属性配置,描述安全管控资源的信息,为SecurityInterceptor提供拦截逻辑的输入。

(编辑:东莞站长网)

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