![0cebbbc2c00b00cbd3877b4864bd753d.png](https://i-blog.csdnimg.cn/blog_migrate/b3f1e4db468d9d10e0072892cb730092.jpeg)
Shiro-简介及架构图介绍
(1) Shiro是什么,它的作用是什么?
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能
(2) 从外部看Shiro,大体上分为哪几部分,每部分的作用是什么?
Subject:主体层
Shiro:安全管理层,起到安全管理的作用
Realm:shiro依赖的数据层
![eba3b08f0793bb5524de09258ba21f52.png](https://i-blog.csdnimg.cn/blog_migrate/5beeda2d02a9cdf4a3125c478a57e671.jpeg)
1. Shiro-03-常见英文名词汇总解释
(1) Shiro中常见的英文词汇有哪些,分别是什么意思?
![dd93faf8d71355a6cf3ba7dbad80042b.png](https://i-blog.csdnimg.cn/blog_migrate/7b8e70de7c84b807fa1a64cfd89b610c.jpeg)
2. Shiro-04-ini配置文件详解
(1) shiro.ini一般放到哪个路径下,该文件中的数据格式是什么样的?
shiro.ini文件放在classpath下,shiro会自动查找。其中格式是key/value键值对配置。
(2) shiro.ini文件的应用场景是怎样的?
INI配置文件一般适用于用户少且不需要在运行时动态创建的情景下使用。
3. Shiro-05-环境搭建实现简单认证
(1) 如何理解身份和凭证?
在 shiro 中,用户需要提供principals (身份)和credentials(凭证)
给shiro,从而实现对用户身份的验证。
(2) 使用Shiro实现简单认证需要哪些步骤?
1 导入jar包
2 从源码的示例项目quickstart中拷贝shiro.ini放到src下,并配置
3 编写代码
4. Shiro-06-Shiro内置的JDBCRealm讲解
(1) 什么是Realm?
是shiro框架依赖的数据源,它专门负责提供数据注入给securityManager
(2) 使用JDBCRealm数据库表需要注意什么问题?
Shiro默认使用自带的IniRealm,所以应该在ini配置文件中设置使用jdbcRealm
5. Shiro-07-如何自定义Realm提供数据源
(1) 本节课自定义的Realm继承了哪个类?
AuthenticatingRealm
(2) SimpleAuthenticationInfo构造器中的三个参数分别是什么意思?
principal:身份
credentials:凭证
realmName:Realm的名称
6. Shiro-08-几种加密类型对比
(1) 常见的加密算法分为哪几类?
对称加密算法和非对称加密算法
(2) 如何理解对称加密和非对称加密?
对称加密:加密与解密密钥相同
非对称加密:加密密钥和解密密钥不同
7. Shiro-09-MD5加密、加盐以及迭代
(1) 什么是加盐?
指的是使用MD5存在一个问题,相同的password生产的Hash值是相同的,如果两个用户设置了相同的密码,那么数据库当就会存储相同的值,这样是极不安全的。加Salt可以一定程度上解决这一问题。所谓加Salt方法,就是加点“佐料”。
(2) 什么是迭代?
加密的次数
8. Shiro-10-凭证匹配器
(1) 什么是凭证匹配器?
在Realm接口的实现类AuthenticatingRealm中有credentialsMatcher属性。
意为凭证匹配器。常用来设置加密算法及迭代次数等。
(2) 凭证匹配器是哪个对象中属性?
AuthenticatingRealm中的credentialsMatcher属性
9. Shiro-11-实现授权
(1) 什么是授权?
授权,又称作为访问控制,是对资源的访问管理的过程。即对于认证通过的用户,授予他可以访问某些资源的权限
(2) Shiro中常见的授权有哪些方式?
Shiro 支持三种方式的授权:代码触发、注解触发、标签触发
10. Shiro-与Spring整合实现登录认证之配置文件编写
(1) Shiro-与Spring整合实现登录认证有哪些操作步骤?
A.导入rbac项目
B.导入shiro相关jar包(shiro-all 以及shiro-spring)
C.在web.xml中添加DelegatingFilterProxy配置
D.编写spring-shiro.xml
E.编写mapper接口及mapper.xml
F.编写service接口及实现类
G.编写controller
H.编写Realm
(2) DelegatingFilterProxy的作用是什么?
通过代理模式将servlet容器中的filter同spring容器中的bean关联起来