00:01
当然了,我们说哈,咱们还是那句话。嗯,我们从一开始就可以跟大家说,这个框架并不是栋梁之才。咱们前面给大家提过。不记得啥是栋梁之才了。啊,就是说他并不是说。就说白了吧,就说到就最透彻,就说并不是离了他我们就活不了了。啊,不是说离了他就活不了了,离了他就是说我们这就是做权限的,他就非常的。就非常的明确,他的任务就是做权限的,那你将来干活的时候,你要做的不是权限相关的功能,那就用不到它。所以说它不是像我们SSM呀,后边学spring cloud呀这些东西,它不是重量之材。啊,所以说这个时候大家正确的去对待他的这个,呃,优先级啊,说这个。呃,当然说,倒不是说你不用学了哈,不是说你不用学了啊,你盖房子你也不能只有地基有大有柱子有梁是吧,你也不砌墙是吧,你也不刷大白是吧,然后你家里也没有家具是吧,四处漏风的是吧。
01:11
啊,这是林教头风雪山神庙嘛,这不是。就是说所以说这个东西呢,我们是正确的去对待它啊,它是一个不像SM这种栋梁的啊,但是你看你自己的实际情况啊,你看你怎么你你合理的分配你的精力啊。嗯。呃,这里边儿我们先介绍这么几个概念。这其实也是我们跟security它进行权限管理相关的几个概念啊,第一个叫主体。它对应的英文单词呢,叫principle。英文单词呢,叫做principle。诶,就是使用系统的用户哈,或者是设备,或者从其他系统远程登录的用户等等。啊,简直简单的说,就是谁用系统谁就是主体。
02:00
那说的再通俗一点的话,其实就是我们以前登录系统的那个user,或者是DMI。但是呢,这是我们熟悉的。主体的一种,那么在spring security的这个概念里边呢,其实哈有的时候是一个设备。有的时候可能是一个从别的系统远程登录过来的一个用户。啊叫他在这方面他考虑的是很全面的。啊,他在我们能理解的这个我们熟悉的范围内里边,就是我们简单理解就是登录系统的用户啊。下一个呢,叫做认证。英文单词叫authentication。An authentication。权限管理系统确认一个主体的身份。允许主体进入系统,简单说就是主体证明自己是谁。说人话呢,就是登陆。啊,但是这个是这样的哈,就这个人家这个概念呢,并不是说故弄玄虚哈,这个他确实不是装逼哈,就是说因为我们像这个,比如说user哈,这个东西,它的范围假设是这个,那么principle呢,它的范围是这个。
03:17
啊,然后我们登录呢,我们登录,呃,我们叫log哈。它的范围是这个,那么authentication呢,它的范围是这个。其实它提供的这种认证的方式有很多很多啊。很多方式都可以去去做这个认证我们的账号密码的登录哈,这只是其中的一种。只是其中的一种啊。那么下面授权叫authorization。Authorization,这个和authentication啊,看着很像,但是你要仔细看,它俩是两个不同的单词,这个叫授权,哎,把权利授予。哎,这个用户。那么其实呢,诶,权利授予给这个主体,这个主体就具备了操作系统中特定功能的能力,简单说呢,就是给用户分配权限,分配角色。
04:09
这个操作这个过程,就是这个授权的一个过程啊,看一下我们下边这个图。我们用户呢,拿着他的用户名,拿着他的密码过来呢,经过认证。哎,经过认证。我们要去加载角色权限信息啊,就是他认证的时候呢,是要去检查账号密码对不对哈。那么。如果说他验证了用户密码正确以后呢,还不够security呢,在这儿他还有一个要求,我必须把这个用户在系统里边,他的角色和权限的信息也必须加载进来。组成一个完整的整体,完整的主体才允许你往后走,后边儿的流程。如果说你只是账号密码正确,但是呢,你没有任何的角色,没有任何的权限,对不起,他不允许你登录进来啊,就是他还不不承认你,因为这时候呢,如果你没有角色没有权限,那他可以认为你就算账号密码对了,你进了系统里头以后,你什么也干不了,没有角色没有权限,你什么也做不了,那你登录进来也没有用。
05:17
啊,Spring security在这儿就会有一个硬性的要求,他要求不光要验证你账号密码要正确,你的角色和权限也必须是能够加载进来的,你哪怕只有一个角色或者只有一个权限也行,不能一个都没有啊,他不允许你一个一个都没有,你必须是一个完整的主体。哎,然后呢,后边我。完整的主体,在你访问资源的时候,我才能够去做权限的验证啊。至于说这个资源,我们怎么去给他设定一个资源,他需要什么样,需要你具备什么权限信息哈。这里边儿可以用注解的方式,可以页面上可以用标签啊,也可以是这个我们在Java代码里边去设置啊,这些都是可以的啊。
06:04
下边呢,我们说哈,这个权限管理的主流的框架呢,其实是有这么几个部分,呃,有这么主要是这么两个,一个是security,一个是这个。啊,一个是spring security,一个是呃,Spring security呢,当然它也是我们spring技术站的一个组成部分啊,啊,这我们看到过了啊,就是这么一个它的logo啊,是这样一个盾牌。这边有一个呃钥匙诶。那么其实我们看这个CRO的logo哈,它也是一个盾牌。你看其实它也是一个盾牌啊,但是呢,这个整个这个风格呢,这个security这个logo很庄重。很保守,很严肃很严谨,但是你看这个shero这个logo呢,它就就很浪。是吧,这个SI,你看这个这个扭动的是吧,这个啊。这就是他们的风格啊,确实是security,相比较来说它更厚重。
07:01
它的功能是非常的全面的啊,它的功能是非常这个全面的。呃,提供完整可扩展的认证和授权,支持保护你的应用程序,就上面这句话啊,上面这个英文英文啊,翻译过来以后就是这句话,提供完整的可扩展的认证和授权。哎,支持保护你的应用程序。呃,这个security和shero的这个区别呢,就特别像我们harbert和MY的区别。Herlet很厚重,很全面,My be蒂就很轻巧,然后呢,它舍弃了一些功能,舍弃一些功能。那它之所以能够轻巧,就是因为它舍弃的一些功能,它才能够相对比较轻巧啊,然后那他追求完整,它才会变得很厚重。嗯。我们这个spring security,它的特点是和spring无缝整合,哎,那它因为它就是spring家族的嘛。
08:05
全面的权限控制啊,他这个。呃,可以在可以针对UR地址进行设定,可以在方法上面加注解,也可以在页面上面去加这个标签进行控制啊,它非常的全面。哎,就页面上加标签呢,是对页面的局部进行控制的啊,局部进行控制的,我页面上哪怕有一个图片,我都可以用权限来控制,你谁可以看到它,谁不可以看到它啊。专门为we部开发而设计啊,什么Q专门是为外部开发设计的,旧版本是不能脱离外部环境的,但是新版本呢,进行了分层抽取,分成了核心模块和外部模块,哎,单独引入核心模块就可以去脱离我们这个外部环境。嗯。分成抽取了,它不在一个假包里边了啊,他把这些东西呃,抽取成了有这个核心的这个假包,有这个针对外部功能的假包啊,他都区分开了,它就可以脱离外部环境了啊,然后它是很重量级的。
09:09
这个RO呢,它是我们阿帕奇旗下的轻量级权限控制框架啊,阿帕奇旗下这个轻量级的。哎,这是他的logo啊,阿帕奇的使用。特点是轻量级,She肉主张的理念是把复杂的事情变简单啊,针对对性能有更高要求的互联网应用啊,会有更更好的表现。然后呢,它的通用性呢,嗯,它是说这个不局限于某种环境,好处是不局限于这样的外部,这样的环境可以脱离外部环境,但是缺陷呢,是外部环境下边儿一些个特定的需求呢,你还得另外再去写代码。这时候就也是很像我们my beat和harlet的区别哈,Harnet它很多SQ语句都替你生成了。但是买be呢,这个时候很多情况下你搜狗语句还是要自己去写。
10:00
啊,当然我们不考虑逆向工程这种情况啊,很多你得自己去写,哎,所以说呢,其实它轻量级是有代价的。不可能说他做和这个重量级的框架做一样的事情,完全一样的事情,然后你能够做的非常轻量级。这个事情几乎不太可能啊,几乎不太可能。啊,这个人家spring也不是吃干饭的呀,人家技术实力那么强啊,然后这个干一件事情,有大量冗余的这个代码等着你she过来把这些冗余的代码清理掉,我就就有另外一个框架了,是吧,这个这个其实不存在这种情况啊,哎。呃,然后这是shero的官网,这是shero阿帕奇的官网,然后这个是这个,你你要是想学she的话。嗯。我们插播一条广告。啊。就是当然这个当然这个,呃,你你肯定你肯定这个你自己是不会有这个需求的啊,就是说如果说你去了公司里边以后,你要用这个。
11:10
啊,到时候你就说,哎呀真行啊,你现在说你不想学是吧,那你公司逼着你学是吧,那你这个就你就你就没有办法了啊。啊,这我们就是对比一下啊,这个肯定我也我也不会说这个,你你你下课你没事,你自己把这个去学一下,没有必要啊说如果将来说你公司里边真的要用啊,到时候再现学。到时候再献血,那你如果你你你这个用不到这个东西,就那当然就没有必要再去花费这个精力了。
我来说两句