00:00
来,我们刚才看到一个问题。这个。Security呢,它有一个密码擦除的一个操作。就是这个也可以叫凭证的擦除,但是这边我们看到它擦除这个凭证的话呢,页面上还是我这边密码还是能显示。这么看你这个没有查出啊。啊,这个这个是怎么怎么理解呢,这咋回事呢。嗯,我们可以到页面上,咱们这样访问一下啊。这个principle打印完了以后呢,再打印下。中的这个密码。这个里边的密码叫啥呢。PP其实是我们这个user对象啊,它的密码呢,其实是这个password。看看有没有get password?哎,访问一下它的get password这个属性。
01:03
嗯,刷新一下啊。我又我我我又给停了。哎,就是我们登录哈,其实到这儿呢,打断点哈,这个在我们user password authentication这哈,他这确实是要过来要做这个查查除。哎,对了,为啥我们刚才说访问那个credentials访问不着哈,他把这credentials给设置成脑了。
02:00
对吧。你看当时咱们这个里边哈。Credentials,这个为啥访问不着,这个他给设置成闹了。所以这个就是也是凭证嘛,啊,这个它就这个就访问不了了。哎,然后我们再进这个方法里边。然后get credentials这边,然后他要去擦除这个其实是。呃,现在是123123啊,这是那个铭文的那个密码。啊,但是这个他这儿不满足这个条件,他就过去了。再到下一行,到这get principle。这个principle就是我们security admin这个对象。呃,现在这个密码现在是有的。啊,再看一眼啊,这个密码现在是有的。嗯,这是username。他的username是我们的login account。这个不一样哈,这个不一样,哎,然后我们再往下,然后再进这个E。
03:02
再往下一行这个条件满足EAS啊,去执行这个擦除。然后呢,再进来。就把这password大家看啊,Password在赋值之前是有值的,哎,然后呢,给它赋一个now值。他就变成闹了,就没有事了,这个他确实是把密码擦除了,但是他擦除的呢,他擦除的是这个user对象。User对象啊,是它的,它里边的密码,也就是说呢,是我们security的密啊,是它里边的,就因为他继承了Yoga嘛,是这个属性啊,是这个属性。嗯。这个属性呢,我们在创建这个对象的时候,调父类的构造器,把我们原始的账号,原始的密码已经都传给他了。啊,传给这个给了这个负类构造器了啊,然后他在这儿就是赋值给password了,现在呢,它擦除是给这个password设置为now。
04:06
哎,然后呢,我们再往下走。嗯,再往下走。这个其实这个details是啥。嗯,这是个什么。你的一个IP地址是什么呢?啊,这个东西他也给你做一个参数,但是这个条件不满足。啊。这就是他的擦除,他的擦除呢,确实是人家并不是没管用啊,人家确实是把user对象,也就是我们现在的securitydin这里边的这个擦出了啊,然后呢,这个credentials。也是啊,现在已经这个设置为闹了啊。这个给擦除了,但是呢,我们页面上访问的,我们访问的。哎,你看principle里边的密码是no,我们这个原始的din里边这个密码还在,所以说呢,我们再把我们自己原始的密码这个给删掉,给擦除了就好了。
05:04
哎,所以说呢,就是说你看在这儿哈。呃,在它的下边。哎,将。原始。嗯,密对象中的密码擦除。这样就是安全性更好一些啊。嗯,就类似点originalmin.set一个user p swd。设置频道。那你说这个有个问题,就是说我们。呃,创建这个对象哈,它将来返回这个对象,需要拿我们写呃,Din这个对象呢,去检查密码,用户密码对不对。啊,那你这设置为闹的话,他怎么去检查你对不对呢。啊,是因为这账号密码,这已经都传给副类的构造器了啊,是拿副类构造器去做的检查,我们这个不是拿我们这个去做的检查啊,咱们再重新跑一下试试。
06:30
对,我们页面上这个credential哈,这个东西。就是打印一下它本身。这个应该是一个not。就不点不点name。啊,就打印一下dials,这个应该是一个not。嗯。哎,这是我们登录哈,这边过来现在是。
07:00
嗯。它显示的有点慢。行吧,就到这儿了哈,嗯,到这儿了,然后其实。这边我们这边都已经看到了哈,这边咱就不在一行行去看了。这个下一个段子他给停到哪儿了?Debug模式运行它这个其实我我记得以前的eclips没有这个毛病,以前的eclipse这个你debug运行正常运行它这个是一样的。你看,他从这又走了一遍。啊,过来我们看这个页面哈,你看这credentials确实是now啊,Credential确实是now,然后呢,这边我们的呃,Principle密码是now,我们security的密码这个也是now,然后呢。
08:04
包括我们这个登录,其实也没有影响登录呢,正常也就都也登录进来了啊,他登录这边是。账号密码的检查是不受影响的啊,这个我们也可以在这去说一下啊。哎,这个是我们来一个密码的擦除。在这儿我们说呀,本身。我们spring security啊,是。会这个自动把。一个呃。User对象的。对象中的密码部分啊,或者也可以叫凭证的那部分啊,啊擦除。啊,这个代码我们都能够看到。
09:00
我们。这个还点不进来了。呃,他说是在他的父类里面。然后这个eras啊,就这是最核心的,真正来做的是在这儿啊,对了,这里边儿我们点这个去看哈,这里边儿。他又回来了。嗯。这是个接口。啊,刚才没注意看哈这边啊,对是这个user这哈,它走的是这个方法,走的是这,诶走的是这。这个就是user对象里边。就是最核心的啊,就是因为在这儿他给傅之位闹了嘛。我们连这个类的名字一起哈,一起这个截个图。哎,这是他去做的一个密码的查处。
10:02
啊,然后但是我们创建security security mean这个对象,去扩展了我们这个user对象。呃。User对象中的密码。被擦除了。啊,但是我们那个原始的din对象。中的密码。没有擦出。哎,所以说呢,我们要擦除这个的话呢,啊,那么如果要。把原始的。The mean对象中的。密码已查出。那么就需要呃,修改一下。我们security but me。
11:00
这个类的这个代码。就在它的构造器里边。哎,它这构造器我们去下边去多加了一行。就这个哈。在这儿设置为闹。这里边儿就没有密码了啊,后边你想拿到这个,你通过这个东西也拿不到密码啊,就是增强这个安全性。啊,是在,嗯。诶不影响我们这个登录认证的情况下,呃,避免这个密码泄露啊,去增加系统的安全性。
我来说两句