1.shiro
1.1 什么是shiro,我们为什么要用shiro?
为什么要用shiro:
1.项目中的密码是否可以明文存储?
2.是否任意访客,无论是否登录都可以访问任何功能?
3.项目中的各种功能操作,是否是所有用户都可以随意使用?
综上,当项目中的某些功能被使用时,需要进行安全校验,进而保证整个系统的运行秩序。
什么是shiro
• Apache Shiro 是 Java 的一个安全(权限)框架。
Shiro 可以轻松的完成:身份认证、授权、加密、会话管理等功能
• Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境。
功能强大且易用,可以快速轻松地保护任何应用程序 ( 从最小的移动应用程序到最大的Web和企业应用程序。)
• 方便的与Web 集成和搭建缓存。
Shiro是一个强大且易用的Java平台的开源权限框架,用于身份验证、授权、加解密和会话管理,它使用简单,可以快速、轻松地让任何应用程序获得如下需求的支持: (1)用户,角色,权限,资源; (2)用户分配角色,角色定义权限; (3)访问授权时支持角色或者权限,并且支持多级的权限定义; 对比Spring Security权限框架,Shiro更加简单,且满足大部分开发需求,Shiro在实际项目中使用非常广泛 本课程可以带你快速掌握Shiro安全框架,解决项目开发中身份认证及授权相关安全问题。
1.2shiro的四个作用
角色验证 权限管理 加密 session管理
1.3shiro的架构 工作流程
Shiro的三大核心组件:Subject,SecurityManager, Realm
三者作用:
subject:安全校验中,最常见的问题是"当前用户是谁?" “当前用户是否有权做x事?”,所以考虑安全校验过程最自
然的方式就是基于当前用户。Subject 代表了当前“用户”,
应用代码直接交互的对象是 Subject,只要得到Subject对象马上可以做绝大多数的shiro操作。
也就是说 Shiro 的对外API 核心就是 Subject。
Subject 会将所有交互都会委托给 SecurityManager。
Subject是安全管理中直接操作的对象
SecurityManager:安全管理器,所有与安全有关的操作都会与SecurityManager 交互;
且其管理着所有 Subject;