1.1 介绍
1.1.1 Apache Shiro是一个框架,可用于身份验证和授权。
1.1.2 权限管理:①身份验证、②授权
1.2 用户身份验证
1.2.1 概念,用户去访问系统,系统要验证用户本身的合法性。
1.2.2 常用的认证方式:
1)用户名、密码
2)指纹打卡机
3)证书验证方法
1.2.3 用户验证流程(图)
1.2.4 用户验证流程中的关键对象
1)subject:主体
2)principal:身份信息,通常是唯一的,一个主体还有多个身份信息,但是都有一个主身份信息(primary principal)
3)credential:凭证信息,,可以是密码 、证书、指纹。
总结:主体在进行身份认证时需要提供身份信息和凭证信息。
1.3 用户授权
1.3.1 概念:用户授权,简单理解为访问控制,在用户认证通过后,系统对用户访问资源进行控制,用户具有资源的访问权限方可访问。
1.3.2 用户授权流程(图)
1.3.3 用户授权过程关键对象
1)Subject:主体
2)resource:资源
3)permission:权限
1.3.4 用户权限模型(图)
完成基本关系操作 需要5张表格;
1.3.5 分配权限
1.3.6 权限控制
1)基于角色的权限控制(RBAC)
2)基于资源的权限控制()
注意:一般使用基于资源的权限控制。
1.3.5 权限管理的解决方案
1)粗粒度:对资源类型的权限管理。资源类型比如:菜单、url连接、用户添加页面、用户信息、类方法、页面中按钮。
2)细粒度:对资源实例的权限管理。资源实例就资源类型的具体化,比如:用户id为001的修改连接,1110班的用户信息、行政部员工。
1.3.6 如何实现粗粒度与细粒度的权限管理?
1)如何实现粗粒度权限管理?
2)如何实现细粒度权限管理?
1.4 基于url的权限管理
1.4.1 URL用户管理原理图
标题第二部分: 使用SpringBoot完成基于URL的权限管理
配置SpringBoot环境
1、构建maven项目(不用勾选web项目架子)
2、配置pom文件(不用自动导入!)
3、创建启动类,注意是在项目文件下,实体类等外面
@SpringBootApplication
public class ShiroApplication {
public static void main(String[] args) {
SpringApplication.run(ShiroApplication.class);
}
}
4、搭建resources文件下的核心文件
application.xml(配置端口号、数据库)