shiro入门基础

今天小编给大家分享shiro入门基础知识,希望能对家人们有帮助。如果小编哪里写有问题,欢迎指明,愿闻其详。

1. shiro简介

shiro是apache的一个权限管理的轻量级框架,实现 用户认证、用户授权。是一个权限框架,它和spring依赖过于紧密, shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理。

c/s系统 客户端/服务器模式

C/S模式有以下特点: 

1、C/S模式将应用与服务分离,系统具有稳定性和灵活性。

2、C/S模式配备的是点对点的结构模式,适用于局域网,有可靠的安全性 。

3、由于客户端实现与服务器端的直接连接,没有中间环节,因此响应速度快。

4、在C/S模式中,作为客户机的计算机都要安装客户机程序,一旦软件系统升级,每台客户机都要安装客户机程序,系统升级和维护较为复杂。

b/s 是browser/server指浏览器和服务器端,在客户机端不用装专门的软件,只要一个浏览器即可.

应用场景:

  1. 在独立应用中使用
  2. 在web中使用
  3. 在spring框架中集成。

shiro 解决应用安全的四要素:

  • 认证 - 用户身份识别,常被称为用户“登录”
  • 授权 - 访问控制
  • 密码加密 - 保护或隐藏数据防止被偷窥
  • 会话管理 - 与用户相关的时间敏感的数据

2. shiro优势

  • 易用: 相当于其他安全框架,shiro比较简单易用
  • 广泛: 使用非常广泛,资料好找
  • 灵活: 可以工作在很多工作环境,web,ejb,ioc等等
  • web支持: 对web的支持好,允许你基于应用 URL 和 Web 协议(如 REST)创建灵活的安全策略,同时还提供了一套控制页面输出的 JSP 标签库
  • 支持:应用广泛,是 Apache 软件基金会成员

shiro访问授权时序图

2.1shiro主要对象

  • suject:安全管理器
  • SecurityManager: 配置所有用户的安全规则
  • Realm: 为SecurityManager提供数据源,这个数据源可以是配置文件,与mvc中dao层做的事情差不多

 

2.2三明治结构

 

  • Subject:开发人员使用,登陆,权限......
  • SecurityManager:安全管理器,封装大量接口方法,主要做事的
  • Realm:提供数据给安全管理器

3.1 Subject(管理员)

subject 被Shiro 描述为一个主体,例如:我们开发的系统需要通过支付宝支付,那么系统对于支付宝来说就是一个主体。所以主体是一个抽象的概念。

在考虑安全时,最常考虑的两个问题,1)当前用户是谁(即,认证) 2)当前用户能被允许做什么?(即:授权)。

3.2 SecurityManager(安全管理器)

如果说Subject关注当前用户的安全操作,SecurityManager则管理所有用户的安全操作。

SecurityManager 是 Shiro 框架的核心,充当“保护伞”引用了多个内部嵌套安全组件,

以ini配置文件为例:

// 1.装入 INI 配置
Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");

//2. 创建 SecurityManager
SecurityManager securityManager = factory.getInstance();

//3. 使其可访问
SecurityUtils.setSecurityManager(securityManager);

3.3 Realm(连接器,提供数据)

Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器"。
Realm 实际上就是一个安全相关的 DAO: Shiro 内置了一些Realm ,支持多种数据源的连接,如JDBC、LDAP、INI文件的连接等。另外,可以自定义Realm 实现,方便个性化的应用场景。

  

执行流程

subject将登陆请求发送给SecurityManager,SecurityManager将用户信息发给Reaml,Reaml从数据库获取数据返回SecurityManager,最后返回给subject,判断是否合法用户。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值