00:01
我以为那是打招呼呢。你先听课吧,一会儿再那啥,我们把这笔记补充一下啊。呃,我们写这个测试的这个呢,只是看一下它这个东西的有这么两个方法,但是其实来说这个是人家框架准备好的,也不需要我们去调。所以说呢,我们在配置类里边用的话,其实哎,就是说把这对象准备好,然后呢,代替以前这传的passwordcocoder就行啊,其实它这个用法其实很简单。用法就是去创建。Password encounter这个对象。哎,去代替啊之前。嗯,传给。传给这个。呃。Pass的,呃,这个方法就是。
01:02
就别代替了,就是说去去传给,呃这个方法。哎,那么。这个做法是这样的哈。嗯,先把它先装配到LC容器里边。让它放在L系统器里边。呃,然后呢,这个builder。过来哈。学教这个方法。哎,就就这样整一下就行啊,就这个方法。他就是他。哎,就这么整一下就好了啊,后边这一切其实我们就不用管了啊,等于说交给什么security来替我们来处理了。嗯。那么我们spring security本身的话,咱们就先。呃,先了解到这个程度啊,往后其实还有一些操作,还有一些操作咱们就可以放到我们这个项目里边啊,放到项目里边,咱们到项目里边来说。
02:06
呃,所以下边我们要考虑的就是我们这个项目哈,如何去加入我们security。我们这个项目中去加入。Security。这个慢慢来啊,咱们一点一点的,首先这个第一步呢,肯定是需要去加入我们security的这个环境。加环境呢,那首先就还是去加依赖。那就是在原有的SSM整合。环境基础上。哎,去这个加入security的依赖。这就是我们前面这个咱们。这一开始这说的这个啊,就是他们几个。呃,我们先把这几个呢,咱们可以先拿到负工程里边。
03:01
CTRLC。嗯嗯,这parent啊。加到这里面,然后呢,我们啥地方用呢。这个。呃,我们跟别的SM环境一样哈,咱们也是加到这个component里边。Component里边呢,是就不需要带版本号的。哎,当然了,这个负工程里边呢,这个东西呢,也可以去给他这儿声明一个属性。啊,这是spring的啊,然后是我们,呃。声明属性啊,这是对spring security的版本。进行这个统计的管理。
04:03
当然其实吧,我也有点儿纠结哈,说这个时候这个版本和这个版本不一样啊,但是就是这个时候,我们现在这个组合呢,它测试的是OK的,它运行的话是通的。然后呢,后边调整成一致的时候呢,反而它有一些个问题啊,所以这个还这两个还不是说同一个版本能完全的这个对应上啊,可能他们各是各的版本。呃,这是我们先加入这个依赖。加入依赖以后呢,下一步哈,你看跟这是一样的,也是要配这个dedic filter proxy。哎,这个是。呃,配置这个。这个具体的配置我们就不重复写了哈,参照。前面的笔记。笔记中前面的内容,嗯。
05:01
把这个CTRLC。诶,拿过来。哎,大家你也适当的体验一下呢。就是说别人给你的不是直接的答案。别人给你的呢,是一个这个间接的啊,需要你在别人给你的这个东西的基础上,你自己往前走一小步,如果你在这个时候,诶,你自己往前走一小步,你能够最后哪怕说稍微有点小毛病,调一调,调过来了,调通了。这个时候你会觉得成就感爆棚啊,你会觉得我又有活下去的希望了啊。从这里边我们去找这个我们学习的快乐啊,呃,学习其实本身确实是很辛苦,九苦一分甜。那你要不去找这个快乐,你这一分钱都没有是吧?哎,你完全是痛苦的,你就坚持不到最后啊,哎。但是虽然说久苦一分甜,但是这个你如果找到这一分,这个这个甜是吧,你找到这个快乐以后,这个快乐是比你干别的很多事要快乐的多啊,这个你会觉得非常的珍贵啊。
06:11
在你的生活生在你的生命当中,闪闪发光的这样一些个时刻。呃,把这个拿过来,这个也没什么说的,呃,下一步呢,准备这么一个配置的类啊,这个其实也是一样的啊,也是一样的。嗯。我们先写上这笔记哈。参照前面的笔记。你自己弄出来的和用别人现成给你准备好的,这个感觉完全不一样是吧?这个类的名,咱也叫这个名啊。你吃饭,你愿意吃别人给你做好的,还是吃你自己做的?
07:03
那那你换咱们换一个角度就是说。你搞对象的话,你是愿意看别人搞对象,还是你自己亲自搞对象?你喜欢看别人搞对象是吧?啊,看别人搞别人的对象,还是看别人搞自己的对象?哼。继承一下这个这个类叫啥来着。Web security。Configu adapter。来,我们加configuration注解。加enable web security这个注解。A。这里边儿就是说这个configuration注解。表示当前类是一个配置类。这个呢是启用我们web环境下。
08:04
权限控制功能。哎,然后嗯,后边的这些这个配置的规则呢,我们一点点去加啊,现在暂时呢,我们先给他写到这个程度。但是我们现在到这儿吧,我们引入到项目和我们单独用什么security就有点儿区别了,这里边呢,这个就这个区别在哪哈,我们这个得下边这咱们专门得说一下这个事儿。就是说谁来。把我们这个配置类。扫描到。LC容器里。谁来扫描它?哎,谁来扫描它。我们何出此言呢?为何有此一问呢?因为我们这儿是两个LC容器。
09:04
我们单独用的时候,这个里边就一个LC容器,就什么MC的LC容器,这里边我们没有那个context load listener,只有display。只有so,哎,但是我们现在回到项目里边就不一样了,我们这个项目里边呀,除了。我们这儿还有contact load listener这俩LC种器,他俩都能够去去把它给扫进来。但是由谁来扫,我们首先得告诉大家,这个效果是不一样的啊。两种情况,如果是。Spring。嗯,如果是spring的LC容器。扫描啊,这是一种情况,另外一种呢,MCLC容去扫描。
10:00
有啥区别呢?如果是spring的LC容器哈。这个spring的LC容器里边。呃,我们可以说它有这个service,有map。它里边呢,会有这个什么什么service这样的病。会有这个什么什么。诶。啊,这是spring的LC容器。啊,当然这时候你把那个那个配置类也给他扫描进来哈。写哪了?哎,这个时候如果是这样的。
11:01
那么它就只能对service、对map起作用,只是对他们有效。啊,他就他能管的呢,就只是管service管。啊,它就对这个我们什么MC这边handle就没有作用了。呃,可是我们整个就我们项目来说,Security啊,确实是他能够对我们service,对map的方法能够进行权限控制,他能做到,但是我们觉得呢。我们是想主要还是想针对我们浏览器请求啊。这写两个字生效。这箭头好大。诶,它只是对他们生效,但是要是对我们西门MC里边这ha就没有作用了。哎,如果是,如果是什么C的话。
12:02
它里边不是这个哈。嗯,他是这个什么什么汉。哎,它还有这个像有controller。它有这样的东西。那么如果是SC的LC容器,去这里边去扫描它,那么它就对这些生效,也就是对我们访问的地址生效啊,也就是对我们的访问的地址。因为我们,呃,这个浏览器呢,访问的话,不是访问它就是访问它。浏览器请求。我们具体想控制的呢,其实主要还是想控制浏览器请求。所以从这来说,为了能够对浏览器请求进行这个控制。我们还是希望呢,能够让Mac来进行扫描。
13:04
为了让。能够针对浏览器请求进行。呃,权限控制。呃,需要让我们。MVC来。扫描。我们的。这个配置类。这个类哈,这是一个结论。这个我们就不不运行去测试了哈,这个大家也能够理解哈,然后它会有一个产生连带的问题。啊,它会产生这个后续会产生一些个连带的问题。呃,我们这边这个。咱不是配了一个filter吗。这又配了一个filter,这个filter启动的时候,它需要去找一个B。那么他要找的那个病呢?
14:03
和和我们这儿配的这个东西有关系。就是说你你这个东西哈,是谁扫描的那个filter想要的bin呢,就在哪个LC容器里边。嗯。哎,这个。这个衍生的一个。一个问题哈。我们delegating filter。嗯,它在启动,就是它在初始化时。呃。需要。到LC容器。去查找一个B。这个B。所在的LC容器要看是呃,谁扫描了。Web security config。这个是什么意思呢?啊,就是我们下边写一下啊,说这个如果如果是spring。
15:07
扫描了。他。那么。这个我们filter。需要的B就在。Spring的LC容器。如果是spring mvc。扫描了这个类。呃,那么。需要的币呢,就在。Spring mvc的MC容器。啊,这个时候我我们下边马上就会遇到这个问题了,我们现在这个项目里边呢,我们把这个你看哈,现在现在这个类呢,所在的包呢,是MVC肯。他在MVCF下边呢,这个包是由我们C去扫描的。
16:06
因为这扫描Mac嘛。哎,这个TX这呢,它扫描的是service。这边呢,他没有去执行这个扫描啊,所以spring和spring MC他们扫描的是分开的。现在现在这个类是C扫描的,那么filter想要的那个B呢,就在VC的LC容器里边。啊,所以说在这儿呢,我们可以把这个图呢再完善一下啊。LC容器里边,它就会同时呢,会有我们那个。嗯,就是他在哪个LC容器扫描它,它就在哪个LC容器里边,就有那个filter。要找的B。CTRLC。
17:02
啊,包括我们其实其实这个前面这个也是哈。呃,你要是这边是spring的LC容器。这边是什么什么service。呃,这边是什么什么map。嗯,然后他就对他生效啊,然后这边要找的这个币呢,也是在这个里边。好,然后呢,我们了解这些以后呢,咱们把这个。项目跑一下。啊,这个时候他会给我们当头一棒。
18:03
让他先启动的,我们保存一下视频。
我来说两句