00:01
各位大家好,欢迎继续收看上硅谷这个课程,我们下面呢来把这个基于微服务架构整合spring的案例做一个最终的测试,因为咱们刚才把代码已经给他完成了,那咱下面先看一下这个项目能不能用起来,那怎么做呢?按照咱们之前说到的,首先你里边的RA,包括NUS需要先启用起来,我这里边已经启动过了,之前咱都说过里面这个启动过程。然后启动之后,现在我把我里边的两个微服务启动,一个是API网关,一个是service al,那我们现在先启动网关,因为它是一个损部的项目,所以我在里边我就直接进行启动,我们先把网关启动,网关里边它占用的是822端口,用这个进行启动。包括启用之后,在那里边应该有它的注册信息,我们看到这个已经启动了822,然后咱再启动acl到里边。
01:10
找到井内把这个启动。这个A4L,它占用的多个号是这个是。8009,我们等它启动。好,咱们看它已经启动了,然后启动之后咱们来到那code里面,我把这个刷新一下啊,重新登录。那扣子。登录之后,在里边的服务管理的服务列表中,大家看当前是不是两服务,一个al,一个gateway,咱们通过getway网关可以发现到HL,然后它里边对外暴露进行这么一个访问,刚才咱们把这规则在里边已经做了配置,然后这个做到之后,最后把这个前端项目启动,因为这是一个vuee的一个项目啊,所以我给他直接启动一下。把这个启动NPRUDV,这是一个前端的一个项目。
02:05
启动之后,咱们做一个最终的一个测试。因为我这里边测试呢,我有一个管理员用户就这个我的密啊,那我用我的密密码我们就是六一,包括咱看数据库中我的密码,密码六个一,我用它做个登录。然后我登录。登录之后大家看这里边提示我叫失败,大家看一下什么问题啊,正常应该能登进去,就是目前应该是有问题的大你看到这个错误应该是代码哪里边有错了,那我们看一下控制台的里边啊,先看API网关中。没发现错误,这里面是对的,然后咱们再看这个A赛里边往下看,你看啊,这里边有他查询的信息,但你看这位置。是不是问题了,这是什么?是不是一个空指针异常啊,就是目前出现的异常啊,那大家看它什么异常啊,他告诉我们说这个security user里边的get password这个得不到,比如说这应该是当前用户,说你当前用户的密码得不到,没有这个值,所以他报错了,比如说在当前的spring s里边找不到你的用户信息,他不能完成这个认证过程,那咱下面把这问题给他解决一下。
03:20
怎么解决呢?咱用一种最传统的方式,就是第bug调试,那我来调试一下哈,就是现在我这么来做。首先我把这A这个模块先用d bug方式,就是断点调试方式给它先进行启动,咱等他先启动,启动之后我在里边对应的代码部分加上相应的断点。咱等他先启动起来啊。啊,这个启动了,然后咱们加断点怎么加呢?首先第一个在我们的spring里边,就是咱们之前提到的啊,里边有这个基本的结构,它认证过滤器应该是走的这个里边比如有一个type。
04:02
我加钻点包里边有成功的,有这个失败的,然后他在type里边得到信息之后,会调我们那个user detail,那咱们找那个user detail,在这里边也加上断点。就这里边。他根据用户名做查询,你看现在我都加入断点,然后咱们看这过程啊,我们重新回来。刷新。在这里边呢,比如现在我用我的命。密码是六一。登录。大家看它是不是到了我这方法中来,就是我们的认证过滤器嘛,然后里边得到你用户名,咱看这user侧里边啊,往下看和上面看都可以,User里边是不是有信息,然后往下re,退会到我们那个user是不是套里边根据用户名,用户名是的密查数据库,然后他一查。你看啊,User里边。是不是能查出数据,各位看是不是有这些数据,应该能看到吧,数据都有,然后查来之后,下面咱给的就是。
05:06
返回这个spring security这个对象啊,就是这个对象叫user,然后咱看这个security user里边的信息大家看啊,应该在下边给它调小点啊,这里面。你看啊。各位看到问题了吗?这个叫permission value list是它的权限列表信息,但是里边还有一个叫current,这个user info是它当前用户信息,这里边是不是等于空了,没有值,所以咱需要把信息是不是给他,要放到这个CU里边,目前我这里没有放,所以他的信息等于空,问题就在这里。不知各位是否能看到啊,当前用户信息里边为空没有值,所以你后面取的话肯定就取不到,那我现在把这个快速解决一下,这个我先关掉。然后里边解决一下啊,方式很简单,点上。
06:00
试菜的方法,然后把这个叫CU user,因为这是我用户信息嘛,给它就是复制进来了在里边。是不是就放到了C科里边去,然而现在应该部位空了,所以咱们的问题就是用这一行代码就可以解决,你当前等于空了,你给他手动设置一下就可以了。好,这个各位应该能快速找到,然后找到之后我们再重新启动,咱来看一下最终的结果。好,这断点啊,我先给它去掉啊,后面咱再接再重新调试啊,先把断点我先去掉。好,这个启动,启动之后,咱们来到我们这个。登录界面。然后在里边我点上我的密,密码是一二啊不是就是六个一。点登录。大家看啊,里边他报了这么一个问题啊,咱看这错误是什么啊,他报了一个叫503的错误啊,503应该服务不能用啊,那这样我把这服务咱都重新启动一下啊,我重新启动一下。
07:06
先回来。这个网关我给它启动一下啊。都重新启动一下,然后咱们做一个进行测试。好,启动啊,先启动网关。等等的听起来啊。好,这个可以,然后我再使用这个acl这个模块。他用的是8009。包括前端啊,不需要动,在那里边我重新做个访问,咱来试一下啊。好,这个启动了,然后咱们看这个NAS里边应该有我当前服务,我再来到这个里边。重新刷新啊。小心,我用我的密,密码是六个一。
08:04
登录。各位看,现在整动进去了,刚才应该是啊,你启动没有启动成功啊等等问题,但是现在是可以了,所以这个认证的过程应该就完成了,证明咱这整合过程应该就正确了,所以这个啊,就是咱们代码的整合spring security这部分已经做到了,然后做到之后下面按照我刚才说到的,我带着各位通过第bug把里面的过程咱就详细看一下,其实咱刚才已经看了一部分,就是它那个认证的部分,包括咱再说一下啊,认证里边刚才看过,当你就是。第一次输入用户密码,是不是先到这个方法方法,然后在里边里边你return,它会调我们那个user detail里边去查用信息,最终return return之后如果说咱们成功拿到这个successful,如果你失败到这里边。这是它里边的认证过程,然后里边还有这个授权,授权呢,它是通过这个。
09:03
Red包括token这里边信息做这个比对,看你有没有当前操作这个权限,所以它里边呢,主要是这么一个流程,当然这里边用到了red啊,包括等等一些工具类的部分。那我现在把流程咱们最终做一个完整的一个演示,因为刚才效果已经出来了。那我现在啊,用debug启动,咱最终看一下执行过程。等等的,先听起来啊。好,这个启动啊,然后启动之后,我现在啊,咱先给他推出出来啊,先回来。呃,比如说给他重新啊,重新听一下啊。好,那我重新登录啊,我这里边用我的密,密码是六一。点登录。
10:01
呃,应该还是我那个服务问题啊,那我把那个网关我也给他重启一下啊,稍等网关咱给它演示。重启一下。其实网关不需要用底bug啊,本来就那么启动一下啊,为了有那个效果。嗯。等它启动啊。好,这个可以啊,然后咱们回来。到里边我先输入我的密,密码是六一。点登录。登录之后呢,首先到我们这里边,就是咱们的attempt得到用户密码,刚才咱都看过了啊,我就快速过去了,这里边得到ME61,然后一指一退到这里边得到我们数据库查询出来用户信息,返回security,要求那个对象,我们叫security user,把它是不是return return之后大家看到我们这里边啊,它会进入到我们的核心部分。
11:02
啊,当然这是到源码中了啊,这里边咱先出来,然后它成功之后,是不是到我们的四个set里边来,这里边咱们先做法就是得到当前的用户信息,这个user,这是当前信息。你看是不是得到了,包括这个还有咱的权列表,就是cos info,然后得到之后通过radi,包括token这些过程进行操作,你看啊,这个代码是生成这个token,然后这个代码是放到咱的write里边去,最终把它就做这么一个返回,所以这是我们做这个流程,这个过程完成之后,其实就做完了认证的一个过程,你看现在到这行,然后下面是red,就是放到了read里面去。包,最后给他做一个返回。是不是就做到了啊,所以这就是一个认证的一个过程,然后这里边做完之后呢,其实他会把这数据最终放到我们的ready里边去,咱可以到ready中看一下啊。我这是red那个连接,我们来一个叫kiss信号。
12:05
你看额的命是放进去了,就是我们的一个信息嘛,所以这就是关于认证的这么一个基本过程啊,所以我们就做到了啊,就是咱们通过比bug方式做了一个测试啊,包括最终到这过程啊,当然这过程应该是超时了啊,咱给他重新再仿一下啊。然后他直接就。过去了啊。到里边直接让他跳过去啊。你看现在啊,这个过程中呢,就是你认证之后是不是要授权啊,就是现在我要访问要授权,当然你看这授权过程啊,首先嗨的里边得到是不是得偷开。然后偷看你得到之后下面怎么做。它是不是要对应这个token跟RA里边做个比对,包括做到的个过程啊,就是咱们之前一直说这个过程,这是取RA中的值,然后这是里边那个比对,然后最终得到你的信息,最终在页面进行显示,就是它可以操作哪些内容。啊,所以这就是咱们说的一个完整的一个过程,这个啊,我们就演出来了,通过咱这个。
13:06
就是整合代码完成了spring security在咱们微服务中的过程,而这部分重点,比如我提到的,而咱们写的spring部分里面这些包括核心配置类,相关实体类,认证授权过滤器,还有它的相关工具类,以及咱们最后写那个user detail查数据过程,所以这个啊我们就完成了,所以各位通过这个过程能把这个案例最终整合出来。然后这个案例呢,做完之后呢,咱们最后给各位要讲最后一个内容,什么内容呢?就把这个three里边的一些原理部分给各位再做一个更深入的讲解,包括里边的这些过滤器的讲解,包括里边认证流程,它的授权流程是怎么样的,他分别用到哪些方法,最终把这过程给各位再做一个更深入说明咱们现在已经完成了这么一个。
14:04
基于微服务整合security这个案例。
我来说两句