00:00
下边呢,我们来看the Hollywood。这个hello word实际上不是我们写的。是我们直接。来看Siri给我们提供的一段代码,那通过这段代码呢,我们可以看到so大致的使用方式。首先,我们找到C中的假包。Fellow。目前的最新版本就是这个1.3.2打开。其中我们需要用的几个包c all。Log凤接SL凤接SL凤接log机的适配器复制过来。新建一个炸工程。新建一个lib。粘贴。把这四个包加到内路镜下。第一步,加加包。
01:02
有四个包的话呢,这块我有写。然后呢,我们来找C给我们提供的一个hello world,我们注意这个哈,点进来。我们看sample是不是例子啊,点进来看那个叫quick start快速开始。点进来man。Resources配置文件直接粘过来。CC。粘到泪主镜下。然后呢,来看那个Java代码。复制。新建一个包。Come at。硅谷fo hello world。粘贴。点进来。最上面这块需要改一下加个什么呀。加上一个包的声明,OK,到这块的话呢,这个hello word我们就搭好了,右键,我们注意到B方法是吧,右键。
02:05
Run eyes,照application跑起来。好OK,这样,这个hello word就。说完了,那当然我们需要干什么,我们需要来解读一下这部分代码,这部分代码有一些我们是可以直接放到项目里边的。OK。注意上面这个注释的话呢,这是一个license,我们直接删除就可以了。然后说这是一个呃,简单的快速开始,以演示如何使用C,对吧。往下翻我们看。这样的两行代码,我们这样哈,就是说重要的部分我会打上中文注释,不重要的我们大致上看一下就可以了,说这是最简单的方式,创建一个security manager。使用什么呢?使用配置的ROSUROS对ROS就是访问安全数据那个RO用户权限行为啊,使用了一个简单的ini配置文件。
03:09
哪个文件呢,就是这个文件。这个文件右键。打开方式,选择text。这就是这就是我们的一个什么呀,一个ii配置文件。然后呢,我们将使用一个工厂的方式来获取ii文件,进而返回一个security manager的一个实例。我们这个配置文件就在类路径下,我们注意到。这个文件里边都配了什么东西啊,这些是注释吧,往后翻我们看看配了用户这个用户呢,用户名密码以及他有的角色看见了吗?用户名密码,角色这样的。仅限于hello word开发的时候肯定不能这样配,所以说这个就是一个hello word看一下就可以了,开发的时候的话,那就不会这样用的这部分代码,就这两个代码并不是重要的。
04:06
好,我们再往后看。说对于这个简单的例子呢,我们使这个manager在Java虚拟机里边。变为单例,而且可以访问的大部分应用都不这么干,所以说这个代码的话呢,也看一下就可以了,好了,现在呢,这个环境搭建好了,下面我们来看如何来操作COK,这行代码是重要的。获取什么呀?获取当前的。Subject。Subject。我们上节课讲那个C架构的时候,我们说过,我们在我们的程序里面打交道的就是这个叫subject,哎,或许它调用什么方法呢?调用这个方法,调用security的get subject。
05:03
这行代码是重要的,我给打上中文注释哈,然后。下一行实际上是测试使用session,注意,即便在没有web跟EGB的EGB的容器下,也可以来测试说测试使用session。测试使用。Session好,我们看啊,我首先获取session。获取session代码呢?调用subject什么方法呀?的get session方法。看到了吧,然后向里边放了一个属性叫3K值呢是a value,然后再从30里面把这个值再取出来,看是不是取到了,看到了吧,OK,那这个代码的话呢,比较熟哈,我们就不说了。
06:00
这块我来打印一个消息,加上了一个箭头。好,走起。我们找带箭头的这个代码有点长啊,这这我们看到了吗。说什么呀,获取到了这个值,这个值是a value,看到了吧,OK,继续。下边比较重要哈,测试什么呀,测试当前的用户是否。已经。被认证。G是否。已经登陆。调用subject什么方法is?那我们这块显然是没有被认证的,所以说他将进来进来看这一步。
07:00
把什么呀,把。把用户名和密码封装。风。装为。You的name pass token对象。放一下看一眼,大家看用户名和密码,这个是用户名,这个是密码,这一步的话呢,实际上是什么叫remember me是不是啊,这个我们在后边我们再解释哈。Remember。好的,下一步看。调用了。谁调用了我subject login方法执行?登录。那么我们能够登录成功吗?取决于这个配置文件里边是不是配了这个用户密码是不是他对吧,往后翻看一下。
08:04
用户名密码大家看。用户名是这个,密码是他。他就是。后两个呢,是角色过来用户名密码,所以说这个时候是可以登录成功的。走起。我们看一眼哈。诶大家看就是什么呢,登录成功。然后这个代码的话呢,我们接着往后看,大家看可能会出异常,出什么异常啊说嗯。安弄account未知的账户,我把这个改一下。显然这个用户名并没有在配置文件里面进行配置,我们这块直接进行return。加上这样的一个箭头。好,走起再看。
09:05
大家看说没有这个用户看见了吧,这是最后一个日志消息,所以说我们可以来加上一个注释说若。没有指定的账户。则将会。抛出什么异常啊,叫诺account exception。好。再来。我把这个用户名改过来。再往后翻,我们看见。这一张它是什么意思?错误的凭证异常,说白了密码不对。这样写密码不对。我也来写个什么,哼。走起。我们看什么密码不对吧,是吧,所以说落。
10:05
账户存在,但密码不匹。配色C会抛出这个异常。我们还看到一个什么异常啊,就什么用户被锁定的异常,用户被。锁定的一场。它那么这个异常的话呢,目前我们无法测试这个我们在跟spring集成之后,外部环境下我们会来测试它是不这个的话我们先过了哈。先过了,把这个改过来,好,我们再往我们再看。后边还有一个异常,看什么on exception这个异常的话呢,放到了最后,大家觉得我这个异常跟我上面那几个异常会有关系吗?会有关系吗?我CTRLT一下大家看。
11:05
实际上上边的一场exception,上边的我们看到的什么locked account exception unknown account exception,以及。Incorrect credention都是我这个异常的此类吧,所以说它是一个什么呀,它是一个种的认证异常,所有认证时。异常的父类G,上面这三个异常都是它的子类,那从这个里边我们也可以看到,实际上还有一些其他的异常可用,看到了吧。比方说这个是什么意思啊,应该是凭证过期的异常吧。好的。啊,我们现在的话呢,用户密码改过来,我们现在可以登录成功啊,我们来测试它。这是什么?测试。是否有某一个角色?
12:03
这个角色呢,拿过来我们看这个用户用户名密码,角色是他俩。这个跟这个刚好是一致的,所以说他有这个角色。走起。往上翻。看见了吧,他有这个角色。有这个角色,如果我要是瞎写一个。怎么了?是不是没有这个角色,我直接让他进行再走。看到了,哎,这个时候的话呢,没有这个角色好了,我改过来啊。这块我们来多写一步吧,调用了什么subject,什么方法high方法?
13:00
好,再来。说。测试这个用户是不是具备某一个行为。角色的话呢,呃,是一个抽象的一个一个东西说,比方说哎,我你是一个格格,但实际上你可能没有什么权利,但现在啊,说你是否具备某一个行为,说你可以开大门。看大门实际上是一个具体的一个行为,你有权限啊,你可以让谁进让谁出,所以说现在的话呢,说测试什么呀,测试用户是否具备某一个行为好了,调什么方法呢,调用。Subject。的。Is permitted的方法。那有没有它呢?往后翻。我们往后看哈,说这个用户呢,有这样的两个角色,再看角色,有一个角色叫他,其中说这个角色看。
14:11
可以,Do anything with,它看见了吧?我可以对这个做任何事,这是一个通配符,拿过来我们刚好是对它干任何事儿,后边这个单词其实可以改写成什么都可以,这个时候一定是这样的一个效果,可以干任何事。好,走起再看。幽妹。看见了吧,哎,我可以对他干任何事儿,后边这个单词的话呢,随便写。Do anything。就是一个具体的什么呀,一个具体的行为在哪呢。这这是吧,好了再来。这个实际上什么也是测试。用户。
15:04
是否?具备某一个。行为也是某一个行为,不过这个比上面那个怎么了更very powerful,更具体。拿过来我们看哈,我们看。这个用户呢,还有一个角色叫good盖,看见了吧?哎,Good盖他们干什么呢?Good盖这个角色允许注意,这是行为。允许drive,允许,对什么呢?对。这个类型的这个实力干这个事儿看到了吧。啊,这三个单词是有具体语义的。允许对。这个类型。大。这个实力。来做这个事儿,这样看的话呢,呃,有点不不太清楚,我们这样来说哈,比方说U这个用户,我可以对张三。
16:05
来进行删除。哎,我可以删除张三的信息,这样看就更具体了吧,这是一个什么呀,这是一个行为。这是一个类型。这是一个ID。我可以对张三来进行删除,这是一个什么?这是一个非常具体的行为,看到了吧,我把这个代码复制一下CTRLC放到这里面来。后边这一块我就不改了哈,我们直接看效果就可以了。走起。You are permitted。看见了吗?诶,我可以来干这个事儿,没问题。好了,这一步什么直行灯出?
17:07
出调用什么方法调用subject。的老高方法。好到这块的话呢,是程序结束,那登出能测试吗?其实能进行测试,怎么测试啊,我们可以来。打印一下这个用户是不是被认证了。我在这个之前之后都打印一下。应应该之前是什么是被认证了是吧,之后的话呢,没有被认证走起。看程序的运行效果,True这块有一个false,看到了吧,OK,这个呢,就是我们C的一个Hollywood,这里边一部分代码,比方说。
18:03
登录这个代码,或者是登出那个代码,我们是可以直接用到项目里面的,同学可能会问,哎,老师,那你测试决策这个用到项目里面吗?在项目里面我们多半使用声明的方式,比方说注解或者是配置的方式,而很少使用硬编码这个方式。好,具体的话呢,我们到后边我们还会详细的进行讲授。大家也来看一下吧。
我来说两句