Shiro

1.Shiro是什么?

Shiro 是一个 强大且易用 的Java安全框架,执行 身份验证授权密码会话管理 。使用 Shiro 的易于理解的API,您可以 快速轻松 地获得任何应用程序,从 最小 的移动应用程序到 最大 的网络和企业应用程序。

2.Shiro 三大核心概念:Subject, SecurityManagerRealms

1. Subject 当前操作用户

当您保护您的应用程序时,可能最想问的问题就是 “谁是当前用户” 或者是 “当前用户是否允许执行某件事情” 。当我们编写代码或设计用户界面是,我们常常会问自己这些问题:应用程序通常是基于用户角度的,希望尽可能的给每一个用户带来更多的体验或者是获得更多的功能。因此,我们在应用程序中就要考虑要用最安全,最自然的方式传递给用户。ShiroAPI 在器主题概念中就体现了这种思维方式。

Subject 是一个 安全术语,它指的是 当前操作用户 或者说是 当前正在执行的用户,但它又不仅仅只是被称作为 用户,因为 用户 这个词通常与人有关。在 Shiro 的世界中,Subject 可以指一个人,也可以是 3rd(第三方进程)、 **后台账户(DaemonAccount)**或者是 其他类似的事物。它只是意味着 当前跟软件交互的东西 。但考虑到大多数目的和用途,你可以把它视为是 Shiro用户 概念。

当我们在获取 Subject 后,我们就可以立即使用 Shiro 操作来访问当前用户中所有操作的90%,比如 登录,注销,会话,执行授权等等。
  
Subject 代表了当前用户的安全操作,SecurityManager 则管理所有用户的安全操作。

2. SecurityManager 安全管理器

Subject 的 “幕后” 对应物就是 SecurityManager,当 Shiro 与一个 Subject 进行交互时,实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作。

SecurityManagerShiro 框架的核心,Shiro通过 SecurityManager 来管理内部组件实例,并通过它来提供安全管理的各种服务。

几乎每个应用程序中总会有一个 SecurityManager 实例,它的本质就是一个 单例应用程序(尽管他不需要静态化)

3. Realm 领域

Realm 充当了 Shiro 与应用安全数据间的 桥梁 或者 连接器 。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro 会从应用配置的 一个或 多个 Realm 中查找用户及其权限信息。
  
从这个意义上讲,Realm 实质上是一个安全相关的 DAO :它封装了数据源的连接细节,并在需要时将相关数据提供给 Shiro 。当配置 Shiro 时,你必须至少指定一个 Realm ,用于认证和/或授权。可以配置多个 Realm ,但是至少需要一个。
  
Shiro 内置了可以连接大量安全数据源(又名目录)的 Realm ,如 LDAP关系数据库(JDBC)文本配置源(如INI和属性文件等) 。如果默认的 Realm 不能满足需求,你还可以插入自定义的Realm 数据源进行实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值