00:00
好,咱们实现了获取用户角色进行验证,那咱们继续往后推荐,诶,再去实现获取权限进行验证啊,进行一个权限验证,他跟咱们的角色认证相类似啊,这块的步骤相类似啊,带着各位啊,咱们先去确认一张表啊,咱们数据肯定要存到数据库里面啊,咱们对应的表就是它,哎,Permissions啊,咱们去打开看一眼,进到数据库,咱们找到这个相应的库啊,诶,打开对应的表,Permissions就是它。好,同样我也造了一些测试数据啊,咱们先去看一下这个表的字段啊,还是有相关的ID啊,然后这是咱们的权限的主机ID,还有这个权限的什么的名称,还有咱们的对应的权限信息,还有描述啊,其实这块就是定义权限啊,其实最关键的就是在这儿啊,咱们有这个info啊,也就是咱们对应的权限标识,那再往后看啊,咱们什么跟权限相关的,还有什么是不是咱们的角色跟权限是应该有个映射关系啊,同样是多对多的关系啊,咱们看看这儿啊,咱们的角色跟权限的映射关系还是通过它的主键进行一个关联啊,这个表咱们先确认好,那之后呢,咱们要进行一个查询啊,查询相关信息,咱们的需求就是根据角色名查询出对应的权限信息,那这块呢,还是带着各位写下思考啊,跟上面咱们留着这个,根据这个用户姓名啊,用户名去查询咱们的,诶角色名称相类似啊,都是类似的啊关。
01:30
查询就好,那首先啊,咱们对应的这回对应的表是什么?是不是咱们的,哎,主角是它啊,咱们的这个权限表那个咱们先把思写一下select。哎,Select,哎,咱们对应的字段呢,我只需要查什么呢?刚刚说过,在咱们的权限性的信息里面,比较重要的就是它info,我要去查这个info信息,查info信息,然后呢,From啊,From咱们对应的这张表,Per permissions。
02:02
哎,Permissions这张表,然后呢,这块呢,条件where啊就是什么呢?咱们的ID啊,这个根据咱们的ID进行查询的ID,哎得有一个查询条件,因啊因这个相的集合,那个集合去从哪去查,哎咱们是不是得什么呢?得去啊咱们对应的询条件是谁,是咱们的角色名称,然后呢,通过角色名称咱们查询到角色ID,再根据角色ID是不是到这个关联的表里面啊,去查询它所关联的哎相关的权限,所以在这儿啊咱们,哎对应的这个ID从哪去找,就是咱们的这个关联表。还是查询select select,我查询的是谁啊,就是查询一下咱们对应的那个PID啊,咱们对应的权限的ID是谁,然后之后让,哎咱们的这个关联表。哎,关联表的咱们的什么的,哎,这个表名设置一下啊,咱们的根据角色还有权限的关联表行查询where还是筛选条件,筛选条件啊,咱们的这个角色ID in。
03:11
哎,这块根据角色ID进行查询,那同样这块咱们得去找这个角色ID去啊,咱们得把角色ID找出来,那角色ID在哪,各位是不是还是咱们根据角色表进行查询,对吧?Select。Select这个ID。啊,Select表啊,Select这个ID from咱们的这个角色表,通过角色表进行查询,Where,哎,咱们要根据什么角色名进行查询,Name,诶,Is啊,直接进行查询啊,那name name in啊,咱们进行一个查询,进行一个判断,哎,在这儿什么呢?哎,放咱们的角色的什么的集合流程,比如说哎,上面这个张三啊,咱们查询出来他角色没有两个me,还有这个user MAG,那这块呢,咱们也给它设置这个同样的值啊,咱们查询下看看还是这个admin admin,然后呢,还有咱们的这个另外一个角色,呃,User ma。
04:14
在这块呢,进行一个关联查询啊,咱们查询一下相关的什么数据,看是否能查到,运行一下看看。哎,各位可以看到,诶关联出的所有的什么呢?诶相关的权限信息都产出来了啊,这就是咱们写好思扣,哎,针对这个S扣啊,咱们去实现相关的接口方法就成,好那继续再往下啊,咱们要去实现咱们的map查询的接口方法,打开user map之前咱们写过类似的,那这回啊,咱们就参考之前的去实现就成,这回传递的是一个集合啊,是咱们的,诶这个通过思Q也能看到传的参数是咱们的,诶角色集合数据,然后呢,哎,对应的返回结果也是一个集合,什么呢?咱们的权限的音符集合啊,同样也是字符串类型的。
05:05
好,咱们把这个接口快速实现出来啊,参考课件,咱们把这个接口实现出来也很简单啊,就还是通过注解咱们去拼相的思考,哎,把这个相关的接口创建出来,哎,实现咱们的查询可以各位可看到在这进行箱的查询也是一层套一层的子查询啊哎,指定一下咱们的这个角色啊,这个相关的什么的,传递这个参数啊,哎,角色的集合数据啊,因咱们的查询条件啊,进行一个查询,好,这上咱们对应的把接口创建出来,那之后呢,咱们继续往前推,该谁该思维子层了,对吧,咱们起一个思维子层啊,这个接口方法就叫它了,Get user诶,Permission啊,咱们permision ino吧,哎,这个把这个相关的方法串出来,还是进到servicewi啊,咱们把这个先写下,这个接口方法,那咱们这回获取用户角色的权限信息。
06:01
哎,用户角色的全信息咱们拿到手,那这块呢,还是先去盯一下,咱们返回的结果一定是什么,是不是一个list集合对吧?哎,泛型就是字符串类型啊咱们的,哎全信息也是,哎字符串的。好,那这块的方法名就是刚刚咱们所说的get user permission info啊,咱们什么呢?哎,把全信息拿到手,那所对应的这个角色名称也同样是啊,List啊,这个相关集合,哎,这个起一个参数名就叫咱们的角色吧,哎,Rose。哎,这块把这个接口方法咱们串出来,那之后呢,咱们去实现这个方法也非常简单啊,实现相应的方法好也是该加注释,咱们加下注释啊,获取用户权限信息啊,把用户的权限信息拿到手,咱们直接就是什么呢?把麻烦事扔给谁,是不是扔给咱们的map就可以了,对吧?哎,麻烦事扔给map啊,咱们实现一下这个接口方法,直接在这return就好啊,这个跟上面相类似,直接return一下,还是用咱们的user map直接点下进行个查询,诶获取用户的什么呢?这个权限信息,然后传递咱们所对应的参数,就是它好完成咱们service层的搭建好,那这些完成之后呢,咱们还得改造咱们的my room啊,咱们把my room获取权限的,诶自定义授权的方法,咱们需要把这块呢,实现出来也非常简单啊,直接打开咱们的买room,在这里面之前咱们获取了什么呢?角色信息,然后。
07:44
进行一个封装,哎,在这儿诶调用业务层获取咱们的用户的角色信息,那之后呢,诶,咱们在这个下面再去调用接口方法获取用户的权限信息,同样都是查询数据库啊,那在这儿去实现,这算是2.5吧。
08:00
2.5啊,咱们调用业务层获取用户的,我直接拿它改了获取用户的权限信息。获取用户的权限信息参数,谁就是它啊,咱们上一步第二步查询出来的角色的这个集合啊,就用它作为参数,咱们进行查询就好,那直接啊这块呢,还是拿咱们四维调方法就好了,刚刚写好的四方法直接调用啊,获取一下咱们的权限信息,然后呢,这块传递参数就是咱们的上一个步骤查询出来的角色信息,来拿到咱们的权限信息,把权限信息拿到手,这个名字有点长啊,我给他改一下吧,啊这块呢,哎,咱们把这名字精简一下。就是permission。哎,拿到我这个什么呢?权限的集合信息,那咱们也是输出一把啊,咱们去看看这个权限信息啊,在这STEM out输出一下,那这块呢,哎,把咱们的permissions输出一下啊,当前用户的权限信息。
09:11
哎,把全信息咱们输出一下还没完啊,咱们说了这个角色信息也好,全息也好,都要存储到什么,是不是咱们的对象当中INF for里面对吧?哎,把这in符对象点一下,咱们去调方法,诶插入咱们的权限信息,而且权限信息是什么类型,是咱们的字符串类型,而且是多个,哎,要C一个集合的,就是它咱们调箱的方法,哎把这个查询的所有的权限信息都塞进去,哎,完成咱们的角色和权限信息的一个存储啊,进行封装,然后呢,返回给咱们的S就可以,哎完成咱们的诶这个角色和权限信息的一个收集啊这是啊,把这个方法咱们补全,那之后呢,哎,咱们,哎这个为了能测试方便啊,咱们再去controller下添加新的登录认证啊,咱们的登录认证权限的这个现有的方法啊,咱们把这个登录认证,诶验验证这个什么呢?权限的方法。
10:12
咱们实现出来啊,直接复制下来,咱们改一下登录认证,哎什么呢?哎登录认证咱们的验证权限。验证权限那这块呢,哎,其实跟上面相类似啊,咱们这个方法都相类似啊,直接拿上面这个方法改一下就程啊很简单啊,首先咱们什么呢,在这儿啊,这个请求的这个验证权限就不是他了啊,咱们要换成谁是permissions对吧?啊,咱们把它改一下。哎,这块前面还是request,然后呢,后面啊,咱们进行一个关键字修改,改成验证权限,那权限信息呢,咱们随便挑一个吧,我看验证一个什么验证第一个吧,咱们delete啊,这个delete咱们验证一下咱们的删除选项user冒号啊,这个验证一下删除delete。
11:04
验证一下你有没有删除权限,还是那句话,咱们直接加注解,哎,验证有没有具有相应的权限就成,在咱们的这个数据库里面也有相关的什么标识,只要能对应上就可以,好,再往后哎,咱们的什么的请求路径还是参考课件吧,哎,路径咱们设定一下在这。User啊,Permissions嗯,User permissions啊,咱们直接给复制过来修改一下,同样方法名,咱们也也就到它吧,啊,这个user permission permissions啊,咱们进行一个验证,呃,还是改个名吧,咱们写清楚啊,Lock。哎,Login用户登录的权限验证在这底下也写下了,哎,这登录认证验证权限。同样你这块也是啊,这个验证权限成功啊,这是啊,咱们把这个controller啊,测试方法咱们写出来啊,之后呢,咱们在页面去调用它就可以啊,调用相关的,哎,这个验证方法就可以啊,咱们测试一把,看到底好不好用,那既然需要在页面上调用啊,咱们还得去打开什么呢,什么慢点HTML在这里面再新增加一个啊,咱们验证什么的,之前有这个测试授权啊,这还是改一下写的清楚一些,测试授权呢,哎,咱们是验证之前是验证这个角色,角色验证,角色验证,那这回呢,咱们再增加一个验证什么的权限啊,咱们直接诶拿它复制下来改一下就成啊,咱们验证一下权限请求的路径就是它啊,咱们去验证一下这个相关的权限信息,来看当前登录用户是否具有这个权限啊,直接在这儿添加上就可以啊,咱们去测试一把,来做一。
12:54
一个这是权限验证。好,咱们对应的什么页面添加这个咱们的测试授权权限,验证相关的入口,然后之后呢,诶,咱们启动服务进行个测试啊在这儿。
13:12
把咱们的服务跑起来啊,咱们测试一把看看啊,看到底能否什么呢,获取到权限,然后呢,进行一个校验啊,咱们去测试一把,但是这块呢,哎,首先还得先登录啊,进行一个用户登录,然后之后呢,验证一下是否有相关的权限啊,咱们去测试一把。好啊,咱们对应的服务应该已经提起来了啊,咱们测试一把看看,哎,进到咱们对应的页面啊,去访问一下,诶,Lock cost咱们先登录一下啊,这块输用户名还是张三啊Z3,然后之后呢,登录在这有一个哎,咱们的测试授权啊,这个相关的什么的,哎,这个权限验证咱们测试一把啊,直接点击一下测试一下,点击各位可以看到是不是验证权限成功对吧?哎,也可以进到咱们程序当中看一下这个相关输出制啊,这个有点呃,这个啊地方又有点卡顿啊这块呢,哎,咱们什么呢?这个诶可以看到啊,刚刚哎可以看到啊,刚刚输出的这个相关的日志信息往前翻一下,可以看到当前用户权限信息啊,有相关的权限查询出来,有咱们的删除啊,用户的删除,用户的新增,还有用户的修改啊,咱们可以看到登录认证权限啊,相关的输出信息。
14:35
而且页面上也反馈了咱们的权限啊,这个验证成功啊,这个是带各位咱们也去什么搭建测试一把,获取权限进行验证啊相关的功能。
我来说两句