shiro01介绍

shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。 shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。

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

2. shiro优势

  • 易用: 对比其他安全框架,他比较好用也实用,性能加全面
  • 广泛: 用途宽广,你缺少什么资料就去找什么资料,
  • 灵活: 可以工作在很多工作环境,web,ejb,ioc等等
  • web支持: 对web的支持好,允许你基于应用 URL 和 Web 协议(如 REST)创建灵活的安全策略,同时还提供了一套控制页面输出的 JSP 标签库
  • 支持:应用广泛,是 Apache 软件基金会成员

3. 核心概念

Shiro的核心概念有三个:Subject,SecurityManager 和 Realms。

1、Subject:subject 被Shiro 描述为一个主体,也可以叫一个主题,他是一个抽象的概念

//获取当前主体
Subject currentUser =SecurityUtils.getSubject();

//判断主体是否具有指定角色。
subject.hasRole("administrator")

//获取当前主体 Subject currentUser =SecurityUtils.getSubject(); //判断主体是否具有指定角色。 subject.hasRole("administrator")

2. SecurityManager

简单来说他是一个SecurityManger也叫安全管理器对象

SecurityManager 是 Shiro 框架的核心,充当“保护伞”引用了多个内部嵌套安全组件,它们形成了对象图。但是,一旦 SecurityManager 及其内部对象图配置好,它就会退居幕后,应用开

一个应用只需要一个 SecurityManager,是一个单例对象。缺省实现是POJO,可以用POJO兼容的任何配置机制进行配置:普通的Java代码、Spring xml、YAML、和 ini 文件等。

SecurityManager是通过java代码或配置文件生成,用来管理所有用户的安全操作的对象,是单例的。

以ini配置文件为例:

下面这他的配置文件

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

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

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

// 1.装入 INI 配置 Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); //2. 创建 SecurityManager SecurityManager securityManager = factory.getInstance(); //3. 使其可访问 SecurityUtils.setSecurityManager(securityManager);

3 .Realm

Realm领域对象可以说他是获取数据的对象

简单一点来说realm充当了shiro的安全数据之间连接器或者是桥梁

从某种意义上讲,Realm 实际上就是一个安全相关的 DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给 Shiro。 Shiro 内置了一些Realm ,支持多种数据源的连接,如JDBC、LDAP、INI文件的连接等。另外,可以自定义Realm 实现,方便个性化的应用场景。


他们的调用逻辑是从上到下

下面这是shiro流程图

 可以把这个想象成一个三明治,

applicationCode可以把它想象成一个用户

Subject这是一个接口

ShiroSecurityManger用作于验证

Realm返回参数

用户调用这个接口,假如这个需要做验证,验证去请求     Realm他的参数,在层层返回给用户。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值