- Shiro-简介及架构图介绍(对应01-02视频)
- Shiro是什么,它的作用是什么?
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
- 从外部看Shiro,大体上分为哪几部分,每部分的作用是什么?
Subject:即“当前操作用户”。
SecurityManager:它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部组件实例,并通过它来提供安全管理的各种服务。
Realm: Realm充当了Shiro与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro会从应用配置的Realm中查找用户及其权限信息。
- Shiro-03-常见英文名词汇总解释(视频名称)
- Shiro中常见的英文词汇有哪些,分别是什么意思?
Subject 主体
Secuity 安全
Realm 领域范围
Authenticator 认证器
Authentication 认证
Authorizer 授权器
Authorization 授权
Cryptography 密码、加密
Credential 证书 凭证
Matcher 匹配器
Principal 身份
- Shiro-04-ini配置文件详解(视频名称)
- shiro.ini一般放到哪个路径下,该文件中的数据格式是什么样的?
项目 src目录下 数据格式为键值对形式
- shiro.ini文件的应用场景是怎样的?
适用于用户少且不需要在运行时动态常见的情景下使用
- Shiro-05-环境搭建实现简单认证(视频名称)
- 如何理解身份和凭证?
身份用于区别不同的用户,例如username
凭证是每个用户的唯一识别码,例如password
- 使用Shiro实现简单认证需要哪些步骤?
配置shiro.ini
构建SecurityManager工厂
通过SecurityManager工厂获取SecurityManager实例
将securityManager设置到运行环境当中
获取subject实例
创建用户名密码验证令牌Token
进行身份验证
判断验证是否通过
- Shiro-06-Shiro内置的JDBCRealm讲解(视频名称)
- 什么是Realm?
Realm:域,Realm 充当了 Shiro 与应用安全数据间的“桥梁”或者“连接器”。也就是说,当对用户执行认证(登录)和授权(访问控制)验证时,Shiro 会从应用配置的 Realm 中查找用户及其权限信息。从这个意义上讲,Realm 实质上是一个安全相关的 DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给 Shiro 。当配置 Shiro时,你必须至少指定一个 Realm ,用于认证和(或)授权。配置多个 Realm 是可以的,但是至少需要一个。
Shiro 内置了可以连接大量安全数据源(又名目录)的 Realm,如 LDAP、关系数据库(JDBC)、类似 INI 的文本配置资源以及属性文件等。如果缺省的 Realm 不能满足需求,还可以插入代表自定义数据源的自己的 Realm 实现。
- 使用JDBCRealm数据库表需要注意什么问题?
Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户信息,大部分情况下需要从数据库中读取用户信息,这时候需要使用jdbcRealm或自定义Realm,使用jdbcRealm时,需要在shiro.ini文件中配置数据源。
- Shiro-07-如何自定义Realm提供数据源(视频名称)
- 本节课自定义的Realm继承了哪个类?
AuthenticatingRealm
- SimpleAuthenticationInfo构造器中的三个参数分别是什么意思?
Principal 身份
Credentials 凭证
realmName 域的名称
- Shiro-08-几种加密类型对比(视频名称)
- 常见的加密算法分为哪几类?
对称加密算法和非对称加密算法以及hash算法
- 如何理解对称加密和非对称加密?
对称加密过程和解密过程使用的同一个密钥
非对称加密采用了两个密钥,一般使用公钥进行加密,使用私钥进行解密。
- Shiro-09-MD5加密、加盐以及迭代(视频名称)
- 什么是加盐?
加盐加密是一种对系统登录口令的加密方式,它实现的方式是将每一个口令同一个叫做”盐“(salt)的n位随机数相关联。无论何时只要口令改变,随机数就改变。随机数以未加密的方式存放在口令文件中,这样每个人都可以读。不再只保存加密过的口令,而是先将口令和随机数连接起来然后一同加密,加密后的结果放在口令文件中。
- 什么是迭代?
迭代是重复反馈过程的活动,迭代加密即使用上一次加密的结果作为下一次加密的初始值。
- Shiro-10-凭证匹配器(视频名称)
- 什么是凭证匹配器?
AuthenticatingRealm类中的credentialsMatcher。
用以设置加密算法和迭代次数
- 凭证匹配器是哪个对象中属性?
AuthenticatingRealm
- Shiro-11-实现授权(视频名称)
- 什么是授权?
授权是对通过token认证的用户授予资源访问权限的过程
- Shiro中常见的授权有哪些方式?
基于角色授权和基于权限授权
- Shiro-与Spring整合实现登录认证之配置文件编写(对应12-13视频)
- Shiro-与Spring整合实现登录认证有哪些操作步骤?
导入rbac项目
导入shiro相关jar包(shiro-all 以及shiro-spring)
在web.xml中添加DelegatingFilterProxy配置
编写spring-shiro.xml
编写mapper接口及mapper.xml
编写service接口及实现类
编写controller
编写Realm
- DelegatingFilterProxy的作用是什么?
DelegatingFilterProxy类存在与spring-web包中,其作用就是一个filter的代理,用这个类的好处是可以通过spring容器来管理filter的生命周期,还有就是,可以通过spring注入的形式,来代理一个filter执行。
- 需要将Shiro中的哪些对象交给spring容器管理?
凭证匹配器 HashedCredentialsMatcher
自定义realm
安全管理器 DefaultWebSecurityManager
ShiroFilterFactoryBean对象