Shiro安全框架

1.Shiro-简介及架构图介绍(对应01-02视频)

(1)Shiro是什么,它的作用是什么?
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。其不仅可以用在JavaSE环境,也可以用在JavaEE环境
(2)从外部看Shiro,大体上分为哪几部分,每部分的作用是什么?
在这里插入图片描述

2.Shiro-03-常见英文名词汇总解释(视频名称)

(1)Shiro中常见的英文词汇有哪些,分别是什么意思?
在这里插入图片描述

3.Shiro-04-ini配置文件详解(视频名称)

(1)shiro.ini一般放到哪个路径下,该文件中的数据格式是什么样的?
shiro.ini文件放在classpath下,shiro会自动查找。其中格式是key/value键值对配置。
(2)shiro.ini文件的应用场景是怎样的?
INI配置文件一般适用于用户少且不需要在运行时动态创建的情景下使用。

4.Shiro-05-环境搭建实现简单认证(视频名称)

(1)如何理解身份和凭证?
principals :
身份,即主体的标识属性,可以是任何东西,如用户名、邮箱等,唯一即可。
例如:用户名/邮箱/手机号等。
credentials :
凭证,即只有主体知道的安全值,如密码/数字证书等。
最常见的principals和credentials组合就是用户名/密码了。
(2)使用Shiro实现简单认证需要哪些步骤?

public void testAuthen(){
    //1.构建SecurityManager工厂
    IniSecurityManagerFactory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
    //2.通过securityManagerFactory工厂获取SecurityManager实例
    SecurityManager securityManager = factory.createInstance();
    //3.将securityManager设置到运行环境当中
    SecurityUtils.setSecurityManager(securityManager);
    //4.获取subject实例
    Subject subject = SecurityUtils.getSubject();
    //5.创建用户名密码验证令牌Token
    //密码不对:IncorrectCredentialsException
    //用户名不对:UnknownAccountException
    UsernamePasswordToken token = new UsernamePasswordToken("victor","123456");
    //6.进行身份验证
    subject.login(token);
    //7.判断是否认证通过
    if(subject.isAuthenticated()){
        System.out.println("验证通过");
    }else{
        System.out.println("验证不通过");
    }
}

5.Shiro-06-Shiro内置的JDBCRealm讲解(视频名称)

(1)什么是Realm?
Shiro默认使用自带的IniRealm,IniRealm从ini配置文件中读取用户的信息。
大部分情况下需要从系统的数据库中读取用户信息,所以需要使用JDBCRealm或自定义Realm

(2)使用JDBCRealm数据库表需要注意什么问题?
表明和字段名必须一一对应,JDBCRealm其实底层是封装好了sql语句对数据库的查询,使用如果我们的字段和表明不对应就查不出来数据

6.Shiro-07-如何自定义Realm提供数据源(视频名称)

(1)本节课自定义的Realm继承了哪个类?
AuthenticatingRealm
(2)SimpleAuthenticationInfo构造器中的三个参数分别是什么意思?
new SimpleAuthenticationInfo(principal, credentials, “selfRealm”);
Principal:表示用户名,credentials:表示密码,selfRealm:表示自定义Realm的名字

7.Shiro-08-几种加密类型对比(视频名称)

(1)常见的加密算法分为哪几类?
对称加密算法和非对称算法
(2)如何理解对称加密和非对称加密?
对称加密算法(加密与解密密钥相同)
非对称算法(加密密钥和解密密钥不同)

8.Shiro-09-MD5加密、加盐以及迭代(视频名称)

(1)什么是加盐?
加盐:
使用MD5存在一个问题,相同的password生产的Hash值是相同的,如果两个用户设置了相同的密码,那么数据库当就会存储相同的值,这样是极 不安全的。
加Salt可以一定程度上解决这一问题。所谓加Salt方法,就是加点 “佐料”。其基本想法是这样的:当用户首次提供密码时(通常是注册时), 由系统自动往这个密码里撒一些“佐料” ,然后再散列。而当用户登录时, 系统为用户提供的代码撒上同样的“佐料” ,然后散列,再比较散列值,来 确定密码是否正确。
加盐原理: 给原文加入随机数生成新的MD5值。
(2)什么是迭代?
迭代:加密的次数

9.Shiro-10-凭证匹配器(视频名称)

(1)什么是凭证匹配器?
在Realm接口的实现类AuthenticatingRealm中有credentialsMatcher属性。
意为凭证匹配器。常用来设置加密算法及迭代次数等
(2)凭证匹配器是哪个对象中属性?
AuthenticatingRealm

10.Shiro-11-实现授权(视频名称)

(1)什么是授权?
授权,又称作为访问控制,是对资源的访问管理的过程。即对于认证通过的用户,授予他可以访问某些资源的权限
(2)Shiro中常见的授权有哪些方式?
Shiro 支持三种方式的授权:代码触发、注解触发、标签触发

11.Shiro-与Spring整合实现登录认证之配置文件编写(对应12-13视频)

(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的作用是什么?
将 Spring 的生命周期交给servlet管理
(3)需要将Shiro中的哪些对象交给spring容器管理?
Sprng-shiro.xml
注册凭证匹配器credentialsMatcher
注册自定义Realm(customRealm)
注册安全管理器(securityManager)
注册ShiroFilterFactoryBean,注意:id名称必须与web.xml中过滤器名称对应
Web.xml
注册ShiroFilterFactoryBean ,注意:id名称必须与web.xml中过滤器名称对应

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值