1. shiro介绍
shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。 shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。
应用场景:
- 在独立应用中使用
- 在web中使用
- 在spring框架中集成。
shiro 解决应用安全的四要素:
- 认证 - 用户身份识别,常被称为用户“登录”
- 授权 - 访问控制
- 密码加密 - 保护或隐藏数据防止被偷窥
- 会话管理 - 与用户相关的时间敏感的数据
2. shiro优势
- 易用: 相当于其他安全框架,shiro比较简单易用
- 广泛: 使用非常广泛,资料好找
- 灵活: 可以工作在很多工作环境,web,ejb,ioc等等
- web支持: 对web的支持好,允许你基于应用 URL 和 Web 协议(如 REST)创建灵活的安全策略,同时还提供了一套控制页面输出的 JSP 标签库
- 支持:应用广泛,是 Apache 软件基金会成员
2.Apache Shiro 的三大核心组件:
Shiro的体系结构具有3个主要概念:Subject(主题),SecurityManager(安全管理器)和Realms(领域)。
3.Shiro架构
-
**Subject **: **Subject **本质上是当前执行用户的特定于安全性的“视图”。 “用户”一词通常表示一个人,而 **Subject **可以是一个人,但它也可以表示第三方服务,守护程序帐户,cron作业或任何类似的东西-基本上是当前与该软件交互的任何东西。 **Subject **实例都绑定到(并需要)SecurityManager。 与 **Subject **进行交互时,这些交互会转换为与SecurityManager特定的 **Subject **交互。