shiro框架快速入门
官网介绍:
Apache Shiro™是一个强大且易用的Java安全框架,能够用于身份验证、授权、加密和会话管理。Shiro拥有易于理解的API,您可以快速、轻松地获得任何应用程序——从最小的移动应用程序到最大的网络和企业应用程序。
简而言之:就是一个Java安全框架,进行身份认证授权等操作
Shiro 架构 3 个核心组件:
(1)Subject:正与系统进行交互的人, 或某一个第三方服务。所有 Subject 实例都被绑定到(且这是必须的)一个SecurityManager 上。
解释:可以理解成一个项目,可以通过使用token进行login操作,这是shiro中的一个抽象概念。
(2)SecurityManager:Shiro 架构的心脏, 用来协调内部各安全组件, 管理内部组件实例, 并通过它来提供安全管理的各种服务。当Shiro 与一个 Subject 进行交互时, 实质上是幕后的 SecurityManager 处理所有繁重的 Subject 安全操作,负责所有的认证和授权。
(3)Realms:本质上是一个特定安全的 DAO。 当配置 Shiro 时, 必须指定至少一个 Realm 用来进行身份验证和/或授权。Shiro 提供了多种可用的 Realms 来获取安全相关的数据。如关系数据库(JDBC), INI 及属性文件等。 可以定义自己 Realm 实现来代表自定义的数据源。
shiro中的重要角色
其中较难理解的点
用户:角色:权限 三者之间的关系,但实际上也很好理解,就是对用户赋予角色,用角色特定的权限去执行
shiro的运行机制
Realm模块
为什么会出现这个模块?
系统没有办法判断你的token是否合法,所以必须由设计者实现,有多种实现途径,这里暂时先介绍一种基础模式—使用数据库查询操作
出现的两个比较重要的抽象名词:
AuthorizationInfo,AuthenticationInfo
这二者分别都代表着一个集合:
AuthorizationInfo代表了角色的权限信息集合,AuthenticationInfo代表了用户的角色信息集合