00:02
好嘞,嗯,那么做这个密码的这个加密呢。啊,这个倒是操作倒不复杂啊,我们这儿咱们就还是用这个基于颜值的方式去加密。那么基于延迟的方式去加密呢?我们都记得这个它生成的那个密码,它特别长。它如果特别长的话呢,哎,我们去看一下。我们这个数据库表这个字段呢,它。啊,够不够宽。然后呢,我们去改变表哈,过来这看一下我们的这个密码呢,长度是32。诶,就这个是刚刚好能存我们以前的那个,我们自己写的MD5加密的那个那个密码,嗯,这个,然后我们带颜值的这个呢,就比它那个要呃,长挺多的啊,这个很明显这个不够。那么我们看一下在。
01:00
另外一个库里边哈,这个里边它是多大。呃,这个是100啊,所以说我们这个呢,100可能用不了哈,但是我们就是说这个打出个打出些个富裕啊,啊,就是我们让他这个。宁可多一点,咱们别给他整的不够了。哎。这是去修改一下啊,改变一下这个表,然后它这个字段的宽度。把这个语句给拿过来哈,我们得去修改一下t mean这个表。改一下他的表结构。Al table out就是修改的意思,Table代表表,这是库,这是表。然后呢,趁着他说修改这个字段。
02:02
啊,然后。呃。这个字段现在是改成100个长度啊,这是个字符集等等。哎,这是我们去修改这个表结构。嗯,为什么要修改这个表结构呢?呃,修改的原因啊,就是说呢,我们以前。使用。嗯。嗯,JDK哈,它自带。的这个message。DIgEst。进行这个加密的操作,生成的密文。长度为32。哎,现在呢,使用这个带。颜值的加密方式。哎,现在用的是这个是带延迟的,带延迟这个加密方式生成的密文。
03:06
哎,长度。嗯,超过这个数值啊,所以呃要修改。啊呃,这个数据库这儿呢,是这样的,就是说你要这个存存数据呢,你要超过它字段的宽度的话。嗯,他会给你截断啊,你原来有这么长,但是他放不下,他就能放下多少,他把这个截出来,后边他就给你扔掉了。啊,它这个它也很粗暴哈,所以说这个地方得是先去修改一下表结构,这个修改了以后呢,我们下一步呢,咱们再去。呃,准备一下我们那个password encoder那个对象。我们叫be。Passor,你扣。准备一下这个对象。
04:02
这个所谓准备这对象呢,就是我们要把它放到这个LC容器里边。哎,你比如说呢,我们去找到我们的配置这个类哈,就是我们spring security的配置类。我们在这儿呢,咱们去写一个并并注解。Public返回个be corrupt。Passwordco。Get一个。Password in order。呃,去把它给尿出来。哎,我们不光是在这个里边要用啊,大家想我们这个还有一个操作呢,是去保存这个管理员。
05:00
保存的时候呢,也是要加密。啊,这个保存也要加密保存的,这个加密呢。也是需要用到这个东西啊,所以说这个放在LC容器里边后边用的地方,呃,一装配就行了。就是我们在我们这个配置类里边。哎,就是我们这个bin这部分。然后这个准备好以后呢,下一步就是我们去。呃,使用啊,使用它的这个对象。用的话呢,就是在builder,哎,给它传进去user details service在它的后边,我们去来一个。
06:02
呃,Password,对,就是他。哎,就是这个get方法的这个返回值。好嘞。呃,再然后呢,数据库里边,呃,数据库里边它的。呃呃,数据库里边哈,看一下现有的这个数据。呃,现在这是一个,这个是一个铭文保存的,咱们去把它加密出来这个密文。啊,不过其实应该是跟这儿是一样的啊。CTRLC。这是123123吧。看这个看是看不出来哈,这就是考验我们的技巧。嗯,保存一下。完了刷新一下啊看看哎,别刷新完了以后发现少一截哈,那那个那个就说明没有存进去。
07:03
嗯。然后呢,下一步就是我们去可以去测试一下啊。嗯。把服务器跑起来。我们这个地址是localhost。8080。哎,这个123123能够登录。然后这个我们退出一下啊看看。换一个别的。呃,换成别的这边就是,呃,账号密码不对啊,这个提示就相当于是账号密码不对。嗯,好嘞。这个我们现在。
08:02
现在把这个加上吧,相当于我们已经能够去基于这个密码哈,能够去去登录了。那么下一步呢,就还得考虑一个事儿,就是说我们要。呃,对,要得去这个保存这个din的时候,也得是使用这个加密的,嗯呃,使用。这个这个东西啊,使用它在。嗯,保存时保存的密是这个加密。所以说我们得去找一下啊,这个保存它的那个位置在哪儿。就看一下我们这个admin啊。这里边儿看一下这个save的me。啊,这是你看这儿还是用的是我们以前的那个工具方法啊,就我们自己去做的这个加密,其实在这儿呢,就是把这一部分去给他换一下。哎,嗯,那么我们这儿就是说去把它。
09:01
这个照片进来哈。Be。Password code。然后把这个拿过来哈,是以前是这么写的。呃,等于它的一个引扣的。哎,把这个传进来哈,哎,加密以后呢,这边。赋值给它,再给它设置回去,然后拿它呢去进行这个保存。呃,那就再把这个哈,我们演示一下。哎,我们标记一下它的位置哈,在admin service里边。去做这样一个修改。
10:00
改改就是把就改,相当于是。这个局部哈。呃,我们后加的,咱们去标记个颜色。哎,这时候,然后我们跑一下试试啊。哟呵,404。是不启动的时候跑一场了。呃,没有这个可用的病。嗯。诶,没有可用的病。这。看一下啊,我们这边。往里边放的时候呢。返回这个东西,嗯,这是C。哦,现在是对,是有这么个问题,这为啥装备不进去呢。
11:04
这个事儿还真的挺耐人寻味。我们现在呢,这个我们呃,装配这个数据吧,我们是在那个哪儿是在din哈。这里哈。呃,我们是想要在这里边呢,去装配我们这个这个东西叫它哈。我们想去招配,但是呢,现在看起来这个事儿有点一厢情愿。那我们这个时,这个时候。Min是。这个spring容器在管理的。
12:04
它是spring LC容器。里边有它,但是这个这个东西呢,它是哪个LC容器,这个咱们哎找一找啊,因为它是在这个里边哈。这个东西是在这个类的里边。在这儿去去去去准备的吧,然后他呢,我们又是在。这个MVC的这个包下边MVC的这个呢,都是我们VC这边他去扫描的。是不是在这儿都是他扫描的,所以说呢,我们这样看的话,它在spring MC的容器里边。那么。这个都是LC容器,它能不能从这过来去装备它?
13:02
这个就比较尴尬啊,这个。儿子可以用爹的东西,但是爹用不了儿子的东西,为啥用不了呢?因为这么MC的C种器吧,它里边有一个属性呢,叫parent。它可以通过parent属性。找到它的副容器。啊,它有这个属性,它有这它叫get parent,它就能够找到它,但是但是呢,这个spring的LC容器啊,它并没有一个什么get children等这种方法。啊。其实这个人也是这样的。啊,你你你这个。我们有需要去去向父母求助的时候是吧?啊,这个爹妈一定是这个毫无保留的去支持我们。但是爹妈需要支持的时候呢,就可能他们就就找不到我们。
14:00
这边找不到啊,因为副容器呢,副容器副容器它没有这样的属性。这是子容器哈。哎,这边过不来,所以这个东西吧,这装配不上啊,他确实是装配不上。嗯。没有派这样的属性啊,这个过不来,所以说呢,这个事儿,这个事儿还还还还还还不能这么装配啊。嗯。嗯,那就那你说尿一个当然也可以哈,你一个当然也可以,嗯。说明那我们这儿吧,这个,那如果说我们就是想那个用这种装备的方式啊,这个肯定也可以啊,就是稍微我们这个呃,做法得调整一下。
15:03
嗯。哎,对,所以说这个需要注意的就是说呢,呃,如果在我们spring。的配置类中。啊,去这个声明。这这么说吧,去这个。用这个B注解将它的对象存入LC容器。呃,那么。那么这个。Service。这样的组件哈。呃,将获取不到。但是也是说什么呢,还是说因为我们这两个LC容器是分开的,你如果在我们搭环境的时候啊,它采取的是这个方案的话。你就不要contact listener了,只有PA,那就没有这事了。
16:03
就一个LC容器就没有这事儿了啊,就不分家啊。啊,分了家以后就分就分了啊,你的还是我的啊。你想孝敬你爸,但是你媳妇儿不同意啊?啊,确实是这样,嗯嗯。然后那么就是这些这些那么得改一改。啊,这个得改一下啊,我看看啊。嗯。那要不我们在这儿配个配一个那啥,咱就不写这个了呗。二。注释掉,把它。嗯,说这个东西呢,说这个是。呃,在这里,呃,声明无法在什么什么service里边哈。
17:10
哎,你在这service里边就没办法装配了。所以在这儿的话,这个现在暂时还没有哈,咱们先暂时先写个闹。他说这不让传导哈。等等吧,那就等会我们准备好了再说啊。嗯。哎,不让在这儿写,那么我们在service里面呢。啊,这就先这么写着哈,然后我们。那比如说就在这个TX这个里边,咱们去配一下。这个叫be password。嗯,配着他的币。
18:01
诶,然后。这个这儿有了以后啊,那我们在这类里边,那就也是啊,这个已经有了,这咱就这个直接装备就完了。Outward。Private。Password。哎,然后这个呢,拿过来以后这儿传的就直接传他。哎,这样的话呢,我们在这儿也是去进行这个装配。呃,跑一下试试啊,试试这个登录能不能行啊,试一试我们这个,呃,保存能不能行。啊,为了确认一下啊,确认一下咱们在这打个断点,咱们debug跑一下啊。现在是正常起的,咱们debug跑一下啊。
19:21
所以说项目呢,随着你开发的越来越深入,功能越来越复杂啊,然后你底层呢,从环境上来说,整合的技术越来越多,哎,那么这个时候你考虑的因素哈,就受到的就越来越多的这个制约。啊到这边这个这个肯这边是初始化的时候再调这个方法啊,就就就看一下它这有没有值就行了。哎,有值啊,这个东西没有什么特殊设置,这个对象只要有就行。然后呢过来,那么我们这边呢,再重新来一下。Me?Login,汤姆。
20:03
哎,然后呢,下边我们到用户维护这儿。过来点新增。随便写一个啊。啊过来,然后看它啊,这个也是有值的啊,这这样的话就都能装配上了。呃,他这个加密。完了,他这个。Debug模式下边,哦,还行哈,我还以为又跟昨天一样了。这是他讲完以后的啊好嘞。这我们就放心了啊,所以在这儿还有个小插曲哈。要这么样的话,就不能在这里边配了啊,这我们得调整一下。准备这个对象哈,所以说这个就是我们去。
21:07
呃,我们是到TX这个配置文件里边哈,你在买里边配其实也行哈,我觉得这个倒是问题不大。在TX这个配置文件里面配了一个B。哎,然后这个配置的方式就是我们最简单的配一个B。哎,然后有了这个的话。呃,像我们这边呢,咱们就。需要的地方呢,就outwa去装配就好了。然后在有需要的地方。嗯,这个auto的这个注解装配即可。
22:04
啊,咱们就不写下边这种了。啊,这边这个用呢,那这个就是用的就是我们outward过来的这个啊,这就是这就不是个方法了啊,这就是个成员变量。哎。用的是它。好。呃,然后。这个加密哈,对,保存的时候加密也是把它装配进来,然后呢,这边直接调这个方法。好了啊,这就是我们这两个地方呢,需要去注意一下这个加密啊,加密本身倒没啥,主要是这个呃,B的装配的这个问题。
我来说两句