Shiro是一个强大且易用的Java平台的开源权限框架,用于身份验证、授权、加解密和会话管理,它使用简单,可以快速、轻松地让任何应用程序获得如下需求的支持:
(1)用户,角色,权限,资源;
(2)用户分配角色,角色定义权限;
(3)访问授权时支持角色或者权限,并且支持多级的权限定义;
对比Spring Security权限框架,Shiro更加简单,且满足大部分开发需求,Shiro在实际项目中使用非常广泛
Shiro的三大核心组件
(1)Subject:当前用户的操作
(2)SecurityManager:用于管理所有的Subject
(3)Realms:用于进行权限信息的验证
如下图:各组件之间的调用关系:
- Subject:翻译为主角,当前参与应用安全部分的主角。可以是用户,可以试第三方服务,可以是cron任务,或者任何东西。主要指一个正在与当前软件交互的东西。所有Subject都需要SecurityManager,当你与Subject进行交互,这些交互行为实际上被转换为与SecurityManager的交互。
- SecurityManager:安全管理员,Shiro架构的核心,它就像Shiro内部所有原件的保护伞。然而一旦配置了SecurityManager,SecurityManager就用到的比较少,开发者大部分时间都花在Subject上面请记得,当你与Subject进行交互的时候,实际上是SecurityManager在背后帮你举起Subject来做一些安全操作。
- Realms:Realms作为Shiro和你的应用的连接桥,当需要与安全数据交互的时候,像用户账户,或者访问控制,Shiro就从一个或多个Realms中查找。Shiro提供了一些可以直接使用的Realms,如果默认的Realms不能满足你的需求,你也可以定制自己的Realms。
从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。
Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。如果系统默认的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。
最后,Shiro可以让你快速,轻松的获得应用程序,不管是从最小的移动应用程序到最大的网络和企业应用程序,所以大家还是有必要对shiro有一定了解和基础认知的。
动力节点的Shiro教程,可以带你快速掌握Shiro安全框架,解决项目开发中身份认证及授权相关安全问题,非常推荐。
课程学习目录
1.Shiro视频教程:介绍
2.Shiro视频教程:搭建环境
3.Shiro视频教程:配置Shiro
4.Shiro视频教程:测试Shiro
5.Shiro视频教程:认证账号-发送登录请求
6.Shiro视频教程:认证账号-配置认证
7.Shiro视频教程:认证账号-认证失败的异常信息
8.Shiro视频教程:认证账号-认证缓存处理
9.Shiro视频教程:Shiro密码加密
10.Shiro视频教程:前段密码加密
11.Shiro视频教程:授权-配置授权
12.Shiro视频教程:授权-授权测试
13.Shiro视频教程:授权-基于注解的权限控制
14.Shiro视频教程:授权-自定义异常拦截
15.Shiro视频教程:授权-为用户添加权限
16.Shiro视频教程:thymeleaf整合Shiro标签
Shiro资料下载