00:00
各位同学大家好,下面呢,咱们开始编写用户认证的代码。咱们写一下,按照我这里画的过程,第一个我们先编写一个自定义密码组件,那我现在来到我这个里边,咱们开始进行编写,找到我们刚才建这个模块spring security,然后在里边呢,首先我们为了我们明确,咱们先建个包,这个包我这里写一下啊,就叫这个custom。就是自定义这个过程。就叫卡,把这个我们作为创建啊,多写一个点把它去掉啊。然后创建之后,在里边写上一个就是自定义密码的组件,那咱们写一下啊叫卡STEM。这个MD5。Pass。这个我们给它加上。然后加上之后,把这个类我们先进行创建,创建之后怎么做呢?让它就是实现里边的一个接口是由提供出来的,它叫password。
01:10
以code实现这个接口,咱们看一下这个接口,它自带的这里边的功能,然后咱们实现里边这个方法,我把它做一个实现。它里边两个方法都进行加密,包括相关的操作,那这个我们就直接啊,从课件中我就直接复制了,因为就是MD5加密,咱给他做这么一个修改,这个我直接拿过来。两个方法改成我们那个MD5的加密方式。这个就完成了,我这里加一个注释自定义。密码组件。这个完成,完成之后呢,在类上边咱们加上一个注解,就是comment交给进行管理,这个就完成,就是第一部分我们就写到这里,然后写完之后我们写第二个咱们自定义一个用户的对象,刚才咱们说到了它本身对象叫这个user details,所以我们自己来写上这么一个类,然后实现这个user detail,其实user details里边呢,它有很多实现类,有一个user啊,那我们直接来写一下啊,我在这位置咱们创建一个类,这个类的名字我就叫custom。
02:26
USA。然后让它呢,继承一个类,就叫做user是three里边的,那咱们看一下啊。这个user我们看它是选这个接口,其实咱也可以实现这个接口,但是我就写上这么一个类,这个完成,完成之后在里边加上它的内容。这个内容我也是从这里边,我就给各位直接复制了啊。就是咱们的就在那种。给加上。因为我们自己的类叫system user,所以根据它我们就用封装满足我们自己的这个需求。
03:05
这个部分我们就完成了,就是第二个自定义这个用户信息这个类。然后这个之后,下面我们再来看第三个。第三个呢,我们需要写个方法,根据用户名称查询用户信息,那再来写一下啊,这个方法呢,咱就不要写到这里边呢,我们写到这个service system,然后在里边呢,找到它的service里边,在这里边写一下这个方法。那我在里边直接写一下啊,他直接写个类实现我们那个security里边那个接口就可以了,那我加上我们叫user。然后它叫做service。MPL。啊,咱叫details啊,其实名字可以随便起啊,只要实现对就可以了,然后这个加上之后让它实现这个接口,它叫user。
04:06
Details就是这个。这样的话完成完成之后我们实现里面的方法,它里边只有一个方法,就是这个方法,我们看到啊这个方法呃,写错了,应该不是detail,是details service,哎,这个写错了啊,把这个去掉。重新给它实现一下啊呃,少写了几个字母啊。是这个。然后咱们实现里边的方法,它里边就一个方法,根据用户名称我们进行查询,所以现在啊,咱们把这部分完成,完成之后呢,在里边写上我们的具体内容,首先我们先加个注解comment,交给spring进行管理。然后在里边呢,我们来进行查询,首先这个参数名字改一下就是username,那怎么做呢?按照我们之前写法,咱们把service给它注进来。Private system user。
05:02
Service我们进行注入。注之后呢,我们直接啊调用里边的方法。这个方法咱之前应该写过这个方法,Get user info by username,所以咱们给它做一个查询,最终把这个查出数据给他做一个返回,我们就叫system user。然后这个方法咱们看一下啊,是咱们之前写过的方法,根据用户名称查询,然后这里边是查询这个对象,这个就可以了,咱们再回来,然后查完之后这个位置呢,我们也给他做一些严格上的判断,我这里写一下啊,首先第一个。如果说啊,查出的对象等于,那那就表示表里边肯定没有这个东西,那咱直接给他就抛出一个异常,我们来写一下啊。Userme not found,这是three中的一个异常。我们提示说这个用户。
06:04
不存在,这是第一个,然后第二个呢,在判断当前用户是否被禁用,咱们也加上if判断一下。System user.get the。然后它的值如果说等于零,那表示用户肯定被禁用掉,咱给他直接就抛出一个异常,我就给他直接抛出一个啊,咱就来一个runtime exception啊,直接抛一,然后里边提示说这个用户已经被禁用了。这是第二部分,然后这些如果都成立,那咱们最后给它做一个返回,返回的话注意啊,要扭一下,就是我们刚才写的那个对象叫custom。User,然后在里边传入参数,第一个是当前查出来这个user色,其实第二个呢,有它相关的权限,那个数据咱目前没有,我先来个空,然后后面再做个完善,就是用里面一个方法,应该叫阿姆提list。
07:09
所以现在啊,把这个就完成了,咱们一会儿security会自动调这个方法,就找这个接口实验类的方法,根据用户名称得到你的用户数据,所以现在这张图里边的第三部分完成了,也就说以上这三个基本的组件我们就准备好了。然后准备好之后,下面呢,咱们开始写这个自定义过滤器啊,包括认证解析过滤器,包括配置下一部分,那咱们下面继续往下来编写。
我来说两句