00:00
好,咱们实现了在这个SP boat框架下啊,这个sir的登录认证功能,而且对接了前端页面啊,虽然这个页面简陋一些,咱们也实现出来了,那这块呢,真正咱们去实现登录认证的时候,可能登录认证的方式不止一个啊,翻一翻咱们的代码,进到咱们的RAM这块,可以看到咱们创建了一个买RA啊这个相关的登录的这个对象,哎,RAM这个对象,那这块呢,有可能真实咱们实现情况下,这可能是买RAM,买RAM1买RA2买买RA3啊一堆堆的登录的方式啊,简单再说的直白一些,就是在咱们登录认证的时候,诶,可以是用户名密码进行校验,是不是也可以是手机号验证码进行校验啊,这块呢,各种方式都可以进行校验,那咱们如果是配置多个RAM的时候啊,这块呢,咱们的S啊,可以用到他的modu了,呃,RAM哦,Sator啊,也就是咱们对应的什么模块化的啊,这个相关的啊,这个认证器。
01:00
然后呢,会使用内部的authentication strategy strategy啊这块呢,用咱们的呃,这个内部的认证策略啊去组建,去判断一下到底是认证成功了还是失败了啊这块呢,哎,会有给咱们提供相关的策略啊,咱们也可以进行选择,那在这儿呢,诶咱们的这个,呃,咱们的这个认内部的认证策略呢,啊是一个无状态的一个组件啊,在咱们认身份认证的过程中,它会被什么呢?调用四次啊去进行个认证,咱们简单了解就可以,比如说在咱们的RAM啊,在所有的RA被调用之前会进行调用,然后还有就是在它的什么呢?哎,咱们曾曾经带各位梳理过源码啊,这里面有个关键方法叫什么,是不是get authendication info啊去获取一下咱们认证信息,方法之前还有之后还有咱们所有的run被调用之后,都会去调用咱们的这个,哎,对应的认证策略,咱们确认一下认证策略到底是什么啊。
02:00
那在底下咱们常用的认证策略啊,这块呢,咱们认证策略其实另外的工作就是聚合所有的这个RAM啊,这个相关的结果信息,封装到一个authentication info啊,这也是咱们老熟人了啊,咱们带各位翻源码也好,或者咱们是自己去自定义相关信息也好,哎,咱们获取的认证信息是不是都要塞到这个authentication ino对象里面啊,啊,都要塞到这个对应的对象里面,而咱们的认证策略就是把这一个或者哎,把咱们的一个或者多个啊,RAM的这个相关信息封装到一个对象里面啊,进行返回,咱们明确一下,哎,这个,哎,咱们的认证策略到底干什么用的,既然明确了啊,咱们认证策略的作用,咱们看看具体到底有几种策略啊,咱们确认一下,然后可以看到常用的这三种啊,咱们看到有一个啊什么的,通过名字就能看出来,哎,At什么的,Last one啊这个,哎咱们的啊,Successful啊这个只要是什么呢?哎有一个,哎至少一个成功啊,就算。
03:00
成功啊这块呢,咱们也看到啊,只要有一个啊或者更多的啊软M验证成功就算是诶认证成功了啊这个还有咱们的什么的,诶fast啊successful啊什么意思哎咱们的哎这个哎就是第一个哎咱们的什么呢?Run认证成功了,哎就整体就视为认证成功了,还有整哎咱们对应的什么,所有的认证成功了才视为成功啊这是咱们认证策略,这怎么理解呢?还是给各各位咱们画一下啊,还是画一下理解一下好,那这块呢,哎咱们去啊这块啊,其实这块咱们还是以咱们我先打开工具吧啊给各位咱们简单画一下。还是啊这块呢,哎这个还是牵扯到咱们最开始的这个入门概念啊,就是为什么,诶第一章也非常重要,咱们明确好入门概念之后,哎,咱们就能明确啊,哎到底它里面,哎是怎么个情况,它认证策略到底是怎么实现的,还记得不记得认证策略啊,首先第一个有咱们的subject对象,然后呢,Subject对象调loging方法,哎去把它交给什么是真正管事的,哎咱们的那个什么呢?哎,Security manager啊真正管事的核心,然后呢,核心得去什么呢?获取啊,调用相关的模块,然后呢,它得取下数据库存的那个信息是谁,是不是RAM,对吧,咱们的RA,哎有可能是一个,是不是有可能是多个,对吧,RA。
04:24
哎,有可能会有多个啊,简单来个标识吧,比如说这是哎这个认证策略一啊,认证这个方式一,方式二方式三啊咱们什么的,哎这块呢,由subject哎提交这个相关的认证请求过来,来传递相关的信息,在咱们的什么呢?哎真正做认证管理的这个模块,哎获取咱们的RAM信息,可能是一个,可能是多个啊进行一个校验啊确认一下到底是认证成功还是失败,如果是第一种策略,哎什么呢?至少有一个,也就是123我全拿到咱们的,哎这对象里面进行校验啊,这信息我全拿到了,哎只要123诶匹配一个就可以,只是啊,咱们对应的哎至少有一个啊,就是通过名字也能看出来啊,咱们只要有一个就可以,比如他命中了,剩下这两个都没命中,这也算认证成功啊,这是啊,咱们第一种方式,那这个第二种方式呢,诶第一个我这个按照顺序啊,C到咱们对象里面,只要第一个哎,认证成功了,后面再失败。
05:25
关系啊,都可以什么呢?认为认证成功后面就被忽略了,只要认证第一个就可以了,好,那这块呢,还有啊,咱们什么的最后一种就是所有的123全都得认证成功才可以啊,相应一些比较认证比较严格的系统,咱们可以用它啊,这个所有的全认证成功了,咱们就可以进行,哎,这个确认是认证通过啊,这是咱们确认一下,如果是多个啊软啊,它怎么进行认证的啊,了解一下它这个常的策略,而咱们的这个呃,Siri里面默认的认证策略选择什么,就是在这儿,哎,至少有一个认证成功就算成功啊,相对还是比较什么宽松的啊,只要有一个认证成功就算成功,那真正代码实现呢,就不带着各位在咱们的DEMO例子里面进行改写了啊,咱们需要创建多个软,然后呢,有不同的规则,在咱们创建好第一步创建好咱们的这个对象啊,Default web啊,Manager啊,创建好咱们的,哎,这个认证对象之后。
06:25
啊,就管理对象之后呢,哎,咱们去创建咱们的什么module啊,RAM啊哦3ATOR啊,这个相关的对象,用出来对象设置它的策略啊,这块呢,你可以选择默认的啊,只要有一个认证成功就算成功,或者我这个系统比较严格,哎,我可以设置什么呢?诶所有都认证成功,哎,才算数啊,这是啊,咱们由咱们自己进行设定的啊这块呢,可以选择默认,也可以选择诶咱们自己设定,然后之后呢,把咱们的创建好的这个认证策略直接塞到咱们的这个security manager里面就可以啊,直接认证策略塞进来就可以了,然后之后呢,哎,咱们再去获取啊,咱们的什么呢?这多个RA啊,这块呢,把它塞到一个RA的list集合当中,哎,把它塞到咱们的哎,这个security manager对象里就可以啊,这块呢,哎,相对而言并没有多复杂啊,咱们只确认一下到底是一个RA还是多个RA啊,咱们进行一个相关的设置。
07:25
就可以啊,你还可以去指定它所对应的策略是什么,哎,就确认好就可以。
我来说两句