00:01
然后我们下一步呢,页面上设置什么哈,页面上设置什么。首先有一个这东西哈,这个是如果登录失败以后回来我们这个页面。这个显示提示消息。它这个名字哈,这个比较长,Spring security last exception,字面意思就是spring这边抛出的最后的一个异常,哎,然后呢,点message去取他的这个消息。然后呢,这个form的话,给他来一个表单。哎,然后呢,这个。呃。配置context request contact pass啊,这是一个绝对路径哈,Do log下边,然后这个东西比较特殊。呃,这叫给它加一个CSRF的一个值。加一个CSRF的这样一个值啊,请用参数的名字和一个token的一个值,Token是令牌的意思,这个CSRF呢,我们后边咱们再介绍一下啊,就是它这个叫做跨站请求伪造啊,跨站请求伪造咱们现在就说。
01:12
呃,这个必须得加,不加的话,这个security他不认。啊,但是这个什么意思,咱们后边一会儿再说啊。呃。这有个提示。如果希望在指定登录页面地址后。指定登录操作本身地址可以调用这个啊,这是我们前面这这已经说过这个事儿了啊,说过这个事儿了,呃,还有一个是说呢,这个permit all这个也很重要。这里之所以要调用。方法。是为了,嗯嗯,为了允许访问这个登录地址。啊,是为了访问登录地址,不然这个登录的地址也需要,呃,登录以后才能访问。
02:08
啊,就是这个登录地址本身也需要放行,也需要放行啊,他也需要放行,这个需要注意啊,这个他也得permit一下。哎,就是我们这儿哈。登录地址本身啊,它也需要呃,放行。啊,不然这个你也是访问不了,再然后呢,把页面上这个假的提交呢,给它注释掉啊,假的提交给它注释掉。找一下我们这个JP哈,页面上有一个假的提交,就这部分啊。这是这是这个也是个GS代码。不用管它什么意思啊,咱们把这一块给它注释掉。
03:02
呃,哎,就是这一块告诉你啊,注释什么,我们这儿,哎,你去你就去去去加这个去去去加这个注释的符号就行了。呃,不用管这个类UI的语法。啊,这个不用管它,把它注释就行,然后账号密码的请求参数的名字spring security默认是这个username和password。那么修改的话,你想改可以用username passwordter的方式去改啊。呃。这个默认的这个大家这个,哎,知道它有默认的值就行了,你不指定可以用默认的,咱们下边给它改一下啊,咱们调这个username per和password perter。
04:01
呃,这个是在这儿哈。A username perter。Password perter。改成啥呢?就仿照咱们众筹这个项目里边login account。然后呢,下边这个叫做user。PSWD。诶,这是一个登录账号。的请求参数名。这是我们登录密码。当然,这个是我们定制的。嗯。定制。啊,给你量身定制。好,这个也设置好了。呃,那么这是下边看后端的配置啊。
05:01
这个是什么呢?呃,但他这儿和我们这儿有点不一样哈。嗯。哈,我们把这个给他拿过来。Logan,我这儿。In JP,对,我们是在login配置下边。去加的这些。嗯。哎,定制请参数的名字哈,这个都是我们去定制的。然后这个是干嘛呢。这个是指定哈,成功登录成功以后,默认前往的页面,你登录成功以后你要去哪儿啊,登录成功以后要去哪,我们登录成功以后去这个闷点H毛啊来这。
06:02
这是我们登录成功以后去的地方。我们也设置一下。Default successor。登录成功后前往的这个这个这个这个地址。哎,这个我们在对这里边儿,我们应该也画一下,这也是我们登录的时候要解决的一个问题啊。呃。因为账号密码他验证完了以后,哎,就是这个。呃,登录成功后。啊,前往。嗯。嗯,新地址这个也需要去指定。
07:06
把我们刚才那个图换一下哈。好,看看还有什么需要设置的啊。呃,重写另外一个负类的方法,这个就是说正确的账号密码是什么。啊,这个负负负工程负,呃,负类里边的这个方法就不要了啊,默认规则给它干掉,这个要不就删掉,要不注释掉,哎,然后呢,builder.in memory authentication。先咱们做一个内存里边做认证的这个。就是说不先不考虑连数据库啊,先暂时我们先简单点,先在内存里面来做,With user是账号,Password是密码,这是正确的账号和密码。这是另外一个用户的账号和密码。这里边儿Rose呢,是设置这个这个这个用户呢,他配套的角色,Authorities是设置它配套的权限。
08:04
你要是不设置角色和权限的话,它会报错啊,报这个cannot pass now granted authority collection这个问题啊,就这个这个错误。咱们来看一下啊。这就是说,我们要去指定正确的账号账号和密码了。用这个builder。In memory authentication。然后呢,来一个with user。来一个汤姆。咱们来一个password。123123。来一个Rose。假设有一个in的这个角色。哎。呃,这里边儿那么帅。这就是memory authentic就是在内存。中完成。
09:01
呃,账号。密码的检查。哎,下一个呢,这个是指定。呃,账号。这个是指定密码。下边这个呢,是这个指定。呃,指定我们当前用户的。角色。啊,咱们后边再连数据库啊,咱们刚开始先简单一点。呃,然后呢,可以指定另外一个用户。比如说是杰瑞。他这儿这个报错的是说没有这个方法。这里边儿没有的时候呢,咱们就按一下。啊,暗的就转换一下它就有了。这时候这儿呢,可以不指定角色,也可以指定权限。Authorities。可以指定一个权限,比如说update。
10:04
哎,指定当前用户的权限。这里边儿表面上看起来呢,其实挺奇怪的。我现在就只是检查一下账号密码对不对。跟角色和权限有啥关系呢?这就是security的要求了啊,Spring security咱们一开始这边咱就说了。哈,他会要求我们账号密码对了以后。哎,你得把这个角色或者是权限的信息加载了,才是一个完整的主体。啊,不然的话呢,他。他不干啊,他这个不允许你只有你光账号密码认证。对了,还不行,还得有角色,至少有一个角色,或者是有一个权限。啊,这是什么剂,它是就是这么要求的。嗯。好了啊,这终于把这些都设置好了。
11:00
哦,对了,这个页面上,对,还有这个页面上,我们得把这个表单给他加上啊。页面上把这个表单加上CTRLC。啊,看看这个里边到从哪开始哈,能把它们都包起来。嗯。这个是一个闷哈。这个就。咱就从这儿开始呗。呃,放标签呢,给他再找个地方给他结束一下。然后就在这个div的后边啊,给它结束一下这个form标签。加上这个放表情,然后呢,看这里边得有一个提交按钮。呃。呃,这个button哈。这个BUTTON3米啊,它可以提交,别的咱就先不管它了啊。这个也设置好了,对,还有这个账号密码哈。
12:02
呃,这边账号的是在这儿。这是图形验证码,账号在哪呢?I log can'。这个我们这儿不太一样。哎,我这儿没没有拿到这儿是吧。啊,在这哈,CTRLC。我们这儿驼峰式命名。他这边这个叫credentials。啊,我们叫这个名哈,这个得指定得一致好嘞,啊,这个有了以后咱们跑一下啊对,还有这对do log哈。哎,访问我们的这个地址去登录。这是账号密码的,请参数的名字,成功以后来这儿。
13:06
等它启动一下啊。呃,随便瞎写一个,这个是一个错的。啊,我去他把这个显示这儿了哈,这个东西呢,就是我们。呃,就是这个P标签这个东西显示的。他这儿只能显示就是这么一个很简单的一个提示,Bad credentials这个他说一个坏的一个一个一个认证吧,就这个就是你账号密码错了。我们这来一个汤姆,123123。哎,这是登录成功以后就来这儿啊,然后这里边儿呢,假如说。呃,如果我们没有这个的话啊,这个CSRF,这个如果没有的话。
14:03
这个你即便账号密码是对的也不行。啊,他会说invalid CS这个now啊说这个你现在你没有提供就是闹吗。啊,我们现在这个这个是必须要给的。哎。一会儿再说他啥意思啊,还有呢,就是账号密码,你这个不一致肯定是不行,还有哪我们看一下啊。对,就是do log这个你如果没有permit。那就让他重新加载一下啊。啊,那你这个这个操作,你也需要登录以后才可以访问。又成了那个死循环了。有一个人上他朋友家去做客,他朋友特别的热情,他就总觉得来我家吃饭,这客人呢,他吃饭要是没剩下,就说明他没吃饱。
15:00
然后来做客,这个客人呢,他就觉得我去人家吃饭,我别给人家剩下。这客人就就就这个端上来,饭他都吃完。这主人呢?一看都吃完,他又又给人做新的。这客人呢,一看他端上来以后呢,这个也他就觉觉得不能剩下人给做了是吧,我也不能剩下,他就都都吃了,这边不停的吃,那边不停的做。然后那个哥们被撑死了。诶。嗯,那难道他这个东西自动的。好吧,这有点尴尬哈。啊,那这个不用不用指定吗。看一下啊,看他有没有对这个事儿做个说明。
16:04
他没有说,没有说这个要不要permit啊,但是他这个是必须的那什么的。嗯,如果我们确认一下的话,就把它这个清掉。应该是应该,那要是这样的话,应该是没问题。那就是说他不需要啊。嗯,那就那就security他考虑这个问题了。啊,那说这个东西你要是不让访问的话,那这个就。那就是他比我们考虑的周到。啊,那没关系,那如果确认这个不需要的话,咱们就把这个就给它删掉就完了。再找一个啊。
17:03
啊,那就是啊,那就那就是说这个他就不需要这个了啊,他可以不用这个。呃,然后我们呢,就代码里边咱把这些删掉啊,这个是这是可以的啊,这是这直接指定了就好了。呃,前面是不是也有啊。嗯,这没写好嘞。这是我们相当于是实验三。
我来说两句