00:00
各位大家好,刚才呢,咱们对用户授权进行了分析,那下面呢,我们开始编写代码,首先第一个我们先修改咱们这个service里边这个方法,Load的user by username,把用户权限数据查出来,然后最终进行返回,那咱们来改一下。这些我先都关掉,找到我们这个方法,在咱们这个service system里边的service这个里边有这个类user details service m PL,然后找到方法,大家看啊,之前这个位置咱们是不是放了一个空的集合,所以目前咱要进行查询,那怎么做,我这里写一下啊,根据。用户ID查询出他操作这个就是权限的数据,那咱们来查一下啊,调用system应该有一个menu,呃,这个service我们没有,咱给它注入进来,因为咱要查询进行操作,那我完成一个注入。
01:00
咱们加上奥拓。Private。System menu service把这个注入,然后注入之后我们调用里边的方法进行实现,咱们找这个方法应该是里边的就是这个方法啊,我们看一下啊在哪里。咱们来到swis里边,咱们看啊啊应该在这里啊,这是菜单的,这是按钮的,咱应该查这个,因为咱们操作,我们操作肯定是句子某一个功能,比如你是菜单的列表,菜单的添加修改、删除,包括用户的列表等等,所以咱要查这个,它是以get开头的,那我这里写一下啊。Get,这个叫button list,传入用户ID,咱们把ID给它拿到,就是ID,这样的话咱们可以完成这么一个查询,然后最终返回的是一个历次集合,咱们就叫这个名字。啊,比如咱给他改一下啊,叫这个permission。叫它啊,然后这个之后呢,下面我们进步操作,就是现在呢,因为咱们要返回security要求结构,所以咱把这值啊给它,要稍微给它转化一下,转成这个结构,里边什么结构,大家看这个类,就是里边的这么一个集合,叫grant also这么一个集合,那下面啊,咱给他就具体写一下这个部分。
02:23
那怎么做,我写个注释啊,就是转换成security。他。要求的格式的数据,咱们首先先创建一个例子集合里边加这个对象啊,这个对象呢,应该有一个实现类,应该叫simple,这个对象应该是他啊,那咱们看一下就这个,然后咱起个名字就叫这个。Author。就叫它了啊,Author等于谬上一个a release,然后写完之后怎么做,把咱们查出数据是不是进行遍历,遍历之后给它放进去就可以了,那咱现在把它遍历一下,加上一个for each,这个就是string prm,然后里边加上这个集合,咱们做便利,便利之后呢,把内容对终给它放进去就可以了,那咱们就直接放下。
03:20
我调用里边的A的方法,然后咱们需要new上这么一个对象,就这个simple grant authors里边加上咱们那个值,这个值应该叫做应该是这个啊,我们找到就是它,然后这个值里边咱给它写的完整点,加上一个叫。Tri就是去掉它那个空格,现在我们就完成了,就是封装成security,要求它这格式,因为它要求咱也看到就这个格式啊,咱做个封装,然后封装之后注意把这个集合咱需要放到我们的这个位置。之前是空,目前放咱们权限的数据,所以咱们的第一个方法就完成了,完成了这么一个方法的修改,查出了用户这个数据,这个就写到这里,这个之后我们再继续写第二个,第二个呢,再里边来配置一下这个,因为最终啊,我们要通过red放这些圈数据。
04:20
那咱们来看一下啊,首先怎么来做,我们看第一部分在模块中,咱们先引入相关的依赖,我就放到这个security模块中,我把依赖咱就直接拿过来。放到这里。这是第一部分。引入依赖。等它下载完成,第一次引入,它会联网下载,咱需要多等一会儿,然后这个引入之后,我们的第二部分咱就来修改里边的相关的这个过滤器,咱们主要有两过滤器,一个之前认证的,一个是解析的,那咱们快速来改一下啊,这部分我就直接复制下了,首先看这个叫token login filter,那咱们找到啊这个过滤器。
05:05
这些我先都关掉啊。找到它,然后找到之后在里边怎么做,第一个我们先定一个属性,就是这个red to里,因为咱们要操作。定义之后,在它这个有参的构造中,咱们做一个赋值,就是传递这个的这个对象,就他们这个对象啊,加上this.write to等于to,把这个给它就加进来,也就是这个。然后这里边也需要把那参数给他加一下啊,我加到这里边,我就直接复制一下。咱们一会儿啊,把这给它都传进来,因为要操作red就通过它进行实现,然后这个之后呢,后面怎么做呢?就是在这个方法中,当咱们认证成功之后,咱们把认证数据是不是要放到re中去,就是里边的这个代码,我把这个啊给各位直接拿过来,找到认证成功这个方法,然后在里边咱们把数据放到re中去。
06:12
这么一个结构。所以现在这个token lo filter我们就改了,最终放到数据是以用户名称作为key,然后这个Jason就是它的权限数据,所以它的value,现在这个完成,完成之后呢,我们继续来改啊,咱们改下一管理器,就是做那个我们说叫做解析的管理器,也就是它token al filter。那这里边我们要改什么呢?咱们也是看一下啊,其实说的简单点就是操作,首先第一步red to先引入进来,然后在里边从re字中取到这个相关内容,你看这个位置啊,是不是取出来,因为你要进行这个就是进行最终的操作,你要进行认证,包括授权,认证通过之后肯定要授权嘛,授权有没有权限,然后再进行后面的操作,那咱们快速把这个来写下啊,第一个把red to先给它引入进来。
07:13
就是在这个位置,通过有参构造给它引入进来。然后引入之后,我们在认证成功之后的方法中来做这个事情,因为你认证通过肯定不需要做这个授权,认证成功之后,那咱们才是授权,也就是里边的这个代码啊,我把这个给大家也是复制一下啊,也就是这么一个基本过程啊。这个直接拿过来,就在这里。然后咱们啊,放到我们的这个位置。这一行给它就注掉了,咱们看一下这代码怎么做的啊,大家看啊,首先第一个我们从write里边是不是根据用户名这个key取到这个确数据,然后把数据怎么做转换成了一个map集合,转换目的就是为了我们操作方便,不转也可以,但是你操作不方便,然后咱们妞了这么一个粒子集合,放这个全数据,最终把这个。
08:11
集合便利得到那种放到这个对象中去,这个啊是我们看到的,然后最终把它做退,在时候注意啊,之前这位置是空,现在放这个获取到这个权限数据以上啊,这是我们完成的过滤器中的修改,这个我们就写到这里。然后这个之后呢,我们最后就来修改一下这个配置类,在配置类中主要是第一部分,咱先开启这个安全认证,然后注入red里边的内容,通过RA做这个操作,就是设置中的机会内容就在这里。这部分啊给各位,最终咱们就拿过来,它这个完整的一个配置类。咱们代码是在我们的这个位置。这个啊,我直接给他就。
09:01
复制一下。然后这样的话呢,我们现在把这个就完成了啊,这个依赖给它都引入啊。咱们这应该叫password。引入。现在就完成了啊,然后你看里边啊,注入了red to,然后在里边设置了red,通过它来取到这个值,然后这里边有个细节啊,就这个位置,其实之前我们也看到这个代码,咱也做个测试,至于过滤器有一个顺序,咱这里边目的是什么呢?如果说啊,我们登录,那它就查我们的这个就是数据库查信息,如果不是登录啊,进行认证,认证之后认证通过是不是还要做这个操作,只是这个过程从re中取到你的认证数据,最终完成认证。啊叫这个是我们看到的一个过程啊,然后这个里边注意它的流程啊,就是我们先进行登录,然后再进行授权,如果说认证授权你记不住,你这么来记,认证就是登录,登录成功之后是不是才能操作,如果你登录都失败,那你肯定不能做这操作以上啊,这个咱就完成了啊,通过存我们那个就是最终操作那个数据。
10:14
然后这个配置那部分我们就写到这里。也就是说啊,以上咱们把总体的部分就都做到了,然后最后就是我们最后写到了,在项目中咱要配置red,因为要操作嘛,包括CTRL里边我们编写它的这个测试代码,那我们先写到这里。
我来说两句