00:01
各位大家好,欢迎继续收看上硅谷视频课程。在刚才内容中呢,我们完成了查询数据库,进行用户的认证,把这个完整代码给各位做了一个演示,那咱们下面继续往下来讲解,咱们下面要讲什么呢?给各位来说一下,大家注意啊,我们刚才呢,在做这个测试过程中,大家发现咱们用的登录页面是不是由spring security默认的一个登录页面,但是实际中的登录页面是不是由我们自己的页面来进行使用,咱肯定不用它那个默认的,因为你也看到它默认页面的样式是不是特别的难看呀,实际中咱肯定是自己有我们自己的页面做登录,所以咱下面就讲一下如何设置一下我们自定义登录页面。包括咱还会讲另外一个操作,比如各位注意,我刚才返我的CTRL的时候,当比如说访这hello里边咱是不是需要认证了,认证之后才能访问啊,但是我现在在这里边我可以做个设置,让我这controller不需要认证也能进行访问,就是它不认证也能进行访问,而有的需要认证才能访问,就是这些在我们这里边都可以实现出来,所以下面给各位来做演示。
01:22
我给大家写一下,咱们主要讲解这么一个内容,就是我们在这里边如何来自定义设置一下我们的动力页面,包括让咱们那个访问的路径如何不需要认证。也可以访问,主要我们来完成这些操作,那这个怎么做,给各位说一下啊,它的做法就是很简单,咱们只需要在我们的配置类中加上一些相关的配置就可以做到,这个是咱们要实验的,那怎么做,咱们下面继续来实验一下。首先我们写第一部分。
02:01
咱们就是在我们这里边的配置内容实现。相关的配置就是配类中啊,把它配置一下就可以了,那怎么做我们来写一下,首先我们来到这个配类中,在里边我们看到之前咱用一个叫扛figure这个方法,但是我们现在还需要在重写这个方法,只是里边的参数跟这个有区别,那我们看一下它的源码中找一下另外一个方法。咱们找一下,就是我们现在要用到里边一个方法,它的名字也叫config,但是里边的方法呢,咱用的不是之前那个咱用这个方法。叫htp security,用这个带参数的方法来完成我们这个基本设置,那我现在在里边来写一下啊。咱们在里边呢,还是给他重写一下。Over right。加上我们这个方法。
03:00
然后在里边你注意啊,这个叫htp secret,咱通过它来完成一些设置,那怎么设置呢?给大家写一下啊,首先里边我们在HTP这个里边有一个方法,这个方法叫做form login方法。大家看这单词form什么意思?是不是表单呀,Log in是不是登录它就表示啊定义咱们登录的时候转到我们自己那个动力页面。就是这里边就是自定义,我们自己编写的这么一个登录页面,就是咱自己的表单,做到这是里边第一部分,然后这里边咱可以具体设下页面,我就写到下一行啊,我们有一个方法,这些方法名字就叫做log in。配置里边加上你那个登录页面的那个地址。就是我们的登录的。页面设置,比如说我先写个页面,一会咱来创建,我们就叫login.html,一会咱让它跳转到我们的这个页面。
04:07
这一个设置,然后这里边除了它之外,咱可以继续往下设置,在这里边呢,还一个方法,这个方法名字它叫做log in。这是什么意思呢?它就表示啊,你定义登录那个访问的一个路径啊,就是我们登录访问的。这么一个路径,什么叫登录反路径呢?大家注意,比如说我们页面中输入了用户名和密码之后,在这个点登录,登录之后是不是要挑表单呀,表单数据是不是要挑到一个CTRL里边去啊,所以这边就设置你登录之后挑到哪一个C中,但是我强调这个C的呢,不需要我们写,这过程有spring security帮我们做到了,咱们只需要写个地址可以了,这地址的CTRL里边的逻辑不需要我们做到,比如说我写个地址就叫user。
05:06
烙印啊,就是你随便写个地址设置一下就可以了,因为这过程有security帮我们做到,这是登录的一个反路径。然后除了它之外,在里边我们还可以进一步设置,比如现在我登录成功之后,它要到什么地方去,你可以设置一下,比如现在我来一个有一个方法叫default。大家看这方法啊,应该这方法。理解它很容易,Success是成功啊,Ul是不是路径了,它就表示当你这里边你登录成功,或者说认证成功之后,他要跳转到的那个路径。比如说我这个位置,然后后面我建个CTRL,让它到一个路径中去,假如说我这个路径啊,我就叫这个杠。太。In desk,这就表示当你登录成功之后,要跳转到的那个路径,然后后面加个方法表示它允许这个操作这个permit,这样的话把这个就做设置。
06:11
所以你注意啊,里边都是一些固定结构,我再重复一遍啊,当然下面还有其他设置,再慢慢来演示,第一个就是烙印配置,你登录页面。第二个就是你登录的那个CTR的路径,这路径咱们可以随便写个路径,第三个就是你登录成功之后要跳转到什么地方去,这里边我们写一个in desk,这样的话咱就完成了这批过程。然后这个完成之后,咱下面再来看啊,就是在这里边,我们下面还有这么一些设置,比如现在啊,我这里边其实还有一个方法,我写一下啊,它叫做and。点上这个叫also,然后加一个叫request,这方法什么意思呢?它就表示啊,我可以定义哪些U方法被保护,哪些不被保护。
07:01
说的通俗点就是哪些啊,你可以进行访问需要认证,哪些可以不需要认证,包括这里边有对应一个方法,我写一下啊,它的方法,这个方法叫。And matches,然后里面加上你的路径,比如说假如我写个杠,那就所有比如现在我写这么一路径啊,你大家看啊,咱之前CTRL中式比哈罗,那我现在就写个哈喽,我来一个test。Hello。然后这里边啊,比如说咱那登录应该也不需要做这个操作,我来一个user。劳役。然后加一个permit哦,而这个什么意思呢?我这里就表示啊,现在当我访问里边的这些路径的时候,咱们不需要认证,它可以直接访问,比如说访问hello之前是不是要登录,现在不需要登录,你可以直接访问,就是我们设置。哪些路径可以?
08:00
直接访问不需要做这个认证,它里边就是这么来做的,这各位给他知道啊,通过这个方法来设置你里边的哪些路径不需要认证,然后这里边咱可以进一步设置,比如里边我们有一个方法叫按这个啊,不叫and,叫这个安。Request,点上这个author,这就表示啊,所有请求都可以访问,然后在过程中呢,其实还有一个东西,这东西咱没有说到,我先写出来,后面咱会讲到,就还有一个叫and.c啊and。点CSRF这表示啊,通过CSRF的防护方式,咱给它做一个disable进在关闭后面咱会说到这到底什么意思啊。这就表示啊,关闭csf的这么一个。防护就是也是一种认证方式啊,咱先默认给它关掉,所以这样的话呢,通过我的这段设置就完成的自定义登录页面部,我把这个再重复一遍,然后咱们把页面还有它的CTRL给它创建完成,首先第一个这是登录面。
09:11
这是你登录里边访问到controller,然后这是你登录成功之后要跳转到什么地方去,这里边表示你哪些路径不需要认证就可以直接访问,所以它里边主要就是这么一个东西,咱们把这个就完成了这么一个说明。然后这个完成之后,我把这个给各位先截过来,咱们在配置类中主要完成了里边的这么几个设置,各位在写的时候,按照我这过程,你把它改成你需要的这些路径就可以了。所以这是我们的算式,第一部分咱们完成,然后完成之后呢,第二部分呢,咱就做个操作,咱就把里边的。创建出相关的这个页面。然后包括你的C了,都给它创建出来,就是完成一个最终的一个测试,那咱们来创建一下啊,首先第一个我现在就在result里边,就是加一个这个文件夹,叫这个C,给它默认找这里边的页面,然后咱这页面我刚才起名叫log in.HTML那我来创建。
10:22
Log in.HTML在里边呢,我们给它就加上一个表单,为了咱们操作方便,因为咱们要通过表单。进行提交吗?那我来个表单。然后表单里边肯定是一个。Form。Form里边呢,有一个action,然后有它的提交方式,注意我们这里边需要用POS提交,然后action里边呢,加上你刚才设置的这个登录的路径,你把这个路径来不来,因为这些过程呢,是由spring security帮我们做到的,但是路径你要写对,然后再下面咱要加上我们那个。
11:01
用户名。包括你的。密码,咱给它加上我们这个表单的竖项,我快速写下啊,第一个就是test,然后它的name。就是咱们username。用户名,然后加一个表换行,第二个是密码,密码我们就是password。最后加上一个提交的这么一个按钮。我们加上啊,就是input。Type等于这个叫submit,然后里边我来一个value啊,Value就是我们这个登录。或者烙印。所以这样的话呢,咱们现在把这个表单我们就完成了,这是它里边一个编写,编写之后呢,咱还缺少一个CTR了,我们在里面加一个ctrler为我们能做测试,因为刚才我这里配置到了登录成功到这个in带里面去,然后里边就多加上一个ctrler啊,咱就直接加一个啊。
12:09
这个我们就叫in desk。Hello in desk。这样的话,咱们把这个我们就完成了,就一个表单页面还有一个CTRL的一个创建,但是表单中有一点给各位特别强调啊,就你里边这个用户名密码的名字,你必须叫username和password,如果你不叫这两个名字,那script security它是得不到你挑过来的用户名和密码的,这是它是得不到的,所以你必须要叫这个名字。这个味药特别注意啊,那它为什么叫这个名字呢?咱们通过源码来看一下啊,就是之前应该咱也看过,现在我们再来看一遍,就是它为什么有没有叫这个名字,我们来看一下啊。大家看,比如现在我们在这个user detail中得到数据户名啊,然后他查数据库到这过程,但这过程中呢,他要用到一个过滤器,咱之前讲到过我们的spring security底层是不是很多过滤器,那我们找一下这过滤器啊。
13:19
他的名字不知道各位是否记得啊,咱之前说到过,叫username。Password这个filter,大家看到就这个东西,然后你看啊,在这里边呢,它有一个方法叫attempt里边。是什么?就是识别POS提交传过来的用户名和密码,然后这是得到用户名这道密码,但是用户名密码的地方呢,你看啊,它要调这个方法,然后里边request get腿。这咱们加上外部阶段应该学过,得到你表单提交过来那个值,然后你看这个名字什么。是不username,这是什么?是帕座的,所以它根据username和PAR座的法式得到你的两个名字,必须跟他要一样,如果你写别的名字,那这值得不到这一点特别注意啊,所以咱们到这步把这个我们就完成了啊,就是里边这么一个基本构成,主要是在配置类中,我们做过配置。
14:18
这个咱们就写出来了啊,然后写完之后,下面咱们给他做这么一个测试,看一下它的效果什么样的,我们来测试一下啊。我把这个服务器咱先启动,然后测试一下。咱们等它定不下来啊,然后咱们怎么测试呢?第一个啊,我先通过T次的hello访问,你刚才提到这种方式啊,你这么配置之后,你可以不认证什么能访问,咱看它能不能直接访问到,然后我再访问test index,看它能能跳转到我们自己设置的登录页面,咱给他登录之后,看能不能给他到我们这个里边来啊,就是通过两步骤测试,一个是不需要认证路径,一个是需要认证路径,包括结合咱之前那个查数据过程,把这个就能完成。
15:08
那再来试一下啊,首先第一个我来访问。Local house的T的哈。各位清楚的看到啊。是不是能访问,没有需要认证吧,因为我在里边是不是做了配置,所以它不需要认证,只有这能访问,然后咱们在访这个叫index。你看啊,是不是需要认证,但是他现在的登录页面不是自带那个默认的吧,是不是咱们自己写的登录页面是这个页面咱就进来了,然后在里边我们输入用户名密码,比如说我们来一个。Lucy,这是123,因为咱数据库中有这用户密码,然后点登录。是不是可以了,这样的话把这个就完成了,然后完成之后呢,为了各位演示更明显,按照我刚才说到的啊,这两个名字是必须叫这个,比如我改一个啊,我改成USERNAME1。
16:03
然后咱试一下,看他能不能对这个值能完成认证,因为刚才看到源码中发现它的名字必须叫这个,但我现在不叫这名字,再看它这值不能得到。你就做一个测试啊。咱来试一下啊。还是仿这个。比如现在。Lucy。123我点捞个印。你发现是不是还在这个页面,是不是挨着我,就是他没有完成认证,域名密码输入的是正确的,但是还不对,为什么不对,因为你的名字跟他要求不一样,他只找名称是username那个值,你改成别的名字他就找不到了,所以这样的话呢,咱们通过这个过程就完成了。自定义用户登录页面包括哪些路径,咱可以不认证,也可以访问,里边主要就是这么一个过程,包括不认证访问在这里上面就是你的。
17:00
登录这个部分。所以各位把这个能给他快速配置出来,根据这个配置类,包括页面把这个流程,把这个能做到,所以咱们就完成这个知识点的讲解,自定义设置登录页面的部分。
我来说两句