前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shiro架构

Shiro架构

作者头像
WindWant
发布2020-09-11 11:28:46
3350
发布2020-09-11 11:28:46
举报
文章被收录于专栏:后端码事后端码事

Apache Shiro Architecture

Apache Shiro的设计目的是为了简化应用系统鉴权,它将系统与外界的交互进行了高度的抽象。

应用软件通常都是基于用户来设计的,也就是说,基于用户会以怎样的一种方式或者应该以一种怎样的方式来与系统进行交互。例如,如果登陆的用户可以查看自己的账户信息,未登陆的用户则可以执行登陆或者注册行为。

应用系统的设计的目的是为了满足用户需求,用户可以是自然的人,或者其它的应用系统。。

High-Level Overview

从最高层抽象来看,Shiro架构包含三个重要的概念,Subject, SecurityManager and Realms. 如下的流程图展示了各个组件之间是如何交互的:

  • Subject: Subject 就是我们所说的用户,Subject 可以是一个自然人、第三方系统、独立的账户或者定时任务等任何类似的和系统进行交互的对象。 所有Subject 实例都必须绑定 SecurityManager并交由SecurityManager进行交互管理。
  • SecurityManager: SecurityManager是Shiro框架的核心,是内部安全组件交互的协调者。通常在开发中,SecurityManager及其内部组件可以通过配置来使用,开发者则更多的专注于和用户交互的SubjectAPI开发中。
  • Realms: Realms 是连接Shiro和系统安全数据之间的桥梁,当用户和系统的交互涉及到系统安全数据时(如:通过执行身份认证及访问授权),Shiro需要通过配置的一个多个Realms来获取认证账户信息。 在这种场景下,Realm担任着DAO角色,它包装了数据源连接细节,并且提供Shiro需要的相关数据。Shiro配置至少需要配置一个Realm来执行认证和授权。SecurityManager 需要配置至少一个Realm配置。 Shiro提供了一些立即可用的Realm,包括连接LDAP、JDBC数据源,JNDI数据源及属性文件等。你也可以使用自己实现的Realm作为客户化的数据源为Shiro提供权限数据。 SecurityManager 管理着Realms获取权限信息,并转化为使用的Subject 实例。
Detailed Architecture

Shiro 流程图:

The SecurityManager

Shiro API 鼓励Subject导向的开发。大多数情况下,开发者也不需要过多的操作 SecurityManager

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Apache Shiro Architecture
    • High-Level Overview
      • Detailed Architecture
        • The SecurityManager
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档