Shiro 基本概念、基本程序、自定义Realm领域(自定义验证方法)、散列算法(md5加密)、授予权限(通过固定配置/通过Realm自定义授权)

本文介绍了Apache Shiro的基本概念,包括用户、角色和权限的数据库设计。接着展示了Shiro的第一个程序,强调了自定义Realm的重要性,用于自定义验证方法。文章深入讨论了散列算法,特别是MD5加密在认证过程中的应用,并记录了解决运行时错误的过程。最后,文章探讨了使用固定配置文件进行授权和通过 Realm 实现更灵活的授权策略。

1.shiro的基本概念

2.权限数据库设计(今天暂未涉及)

用户表user
uid username password
角色表role
rid rname(超级管理员,部门经理,普通员工)
权限表permission
pid pname(添加用户,查询用户,删除用户)
用户角色对应关系
uid rid
角色和权限的对应关系
rid pid

3.第一个程序

jar包
在这里插入图片描述

ini配置文件(建立一个file文件,改后缀,然后拖上来)
在这里插入图片描述

在这里插入图片描述

测试类
在这里插入图片描述

测试:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.自定义Realm(领域)(自己来定义验证方法)

建立MyReanlm类,继承AuthorizingRealm(授权范围、授权领域)
重写授权领域类的两个方法,一个是授权方法,一个是认证方法。这里只写认证方法,自定义如何做登陆验证。
在这里插入图片描述

在这里插入图片描述

配置文件
在这里插入图片描述

测试类:
在这里插入图片描述
运行时发现如下错误,是因为少导了两个包。
在这里插入图片描述
导入这两个包。
在这里插入图片描述
加入了这两个包后,测试正常。

散列算法(就是之前的md5)

在这里插入图片描述
另一种加密方法,两种加密的结果是一样的。
在这里插入图片描述

这里重新自定义一下认证方法,重新模拟一下登陆,通过md5加密过的认证方法。
在这里插入图片描述
配置文件就要修改了,把md5需要的几个参数配进去

在这里插入图片描述
框架获取到了认证信息以后,以前的Realm有了凭证匹配器,将token中的原始密码通过凭证匹配器中指定的散列算法和迭代次数加上认证信息里面的盐值,进行加密计算,计算的结果和hashedCredentials进行比较。

第一次测试的时候出现了未知错误。
在这里插入图片描述

当把这个未知错误注释了之后
在这里插入图片描述
发现是空指针异常
在这里插入图片描述
经过检查发现问题:
在这里插入图片描述
修改成字符串之后即可顺利运行。
在这里插入图片描述

授权之使用固定的配置文件。

在这里插入图片描述
这样方便之后涉及到数据库的时候,可以通过数据库查出的内容给某个用户设置权限。
在这里插入图片描述
在这里插入图片描述

通过 Rrealm 自定义授权

在这MyRealm里面的授权方法里面添加如下方法。在这里插入图片描述在这里插入图片描述
通过这个方法,给符合条件的用户(这里就是验证通过的用户)赋予了两个权限

在这里插入图片描述

配置文件
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值