00:00
这里边儿呢,我们先不着急往下进行,咱们在这儿得有些事儿得说一下。嗯,我们这个汉斯肉这哈,打个断点,我们得进去看一下,咱们得debug进去看一下啊。我们给这个tomcat呢,设定它这个启动的时间。呃,这已经设置为5000秒了,不然他45秒启动时间呢,不够长,不够我们抵bug的。Debug方式,重新启动一下。因为这个时候他对待角色和对待权限呢,表面上看。就是给他传这俩字符串。这俩字串有啥区别呢啊,为啥这个是角色,为啥这是权限啊?这个。一下我先把这些我先去掉啊,这是之前的旧的这个断点。在这儿打个断点,让他过去。
01:01
六号。哎,到这儿了哈,然后呢,进这个方法,点这个按钮是我们进has肉这个方法。还肉这个方法,然后呢,再进这个还肉这个方法啊,现在这个肉还是我们这个。孩子肉哈,然后呢,往这个咱们往下一步一步走哈,核心的实质上是这一个,这拼了一个表达式。这拼了一个表达式,这是我们闯进来的,你看关键是在这儿。他给我们这个角色的前面。加了一个前缀,叫肉下划线。哎,咱们可以简称叫肉杠啊,它减它加了一个肉杠这样一个。一个一个前缀,哎,然后呢,我们看一下这个authority has authority这哈。哎,咱们先来这儿。
02:02
在进进。过了。啊,就这哈,这这这个地方。呃,Authority传进来,这边拼一个表达式叫has authority里边这个东西呢,还是我们传的这个。没有变,所以说其实在security底层呢,它它在这儿区别就在于哈,角色呢,会前面加一个肉杠的一个前缀。权限呢,就不加入杠这个前缀了。它底层上有这么一个区别。啊,这是首先我们先呃,从开源码看到它确实是做了这样一个处理啊,做了这样一个处理。然后呢,我们可以去看一下啊,就说他这个,呃,我们在给用户设定他拥有的角色或权限的时候啊,他会不会考虑这个因素。我把这俩断点就先去掉啊,在这儿重新打断点这个Rose。
03:03
Authorities。哎,咱们debug重启一下。因为这个设置呢,它是启动的时候来读取这个设置,所以说这个断点呢,是在应用启动的时候呢,从这个断点这儿过。哎,所以我们得重新启动啊。Don't tell me again?哎,从这啊,然后我们。进来。Rose。啊,就这俩哈,然后呢,我们再进来。等一下下啊。然后这边呢,是看这个哈,New。然后呢,这个这边是list啊,关键是泛型叫granted authority。Granted authority长度呢是rose.length然后呢往下走,哎,然后去变利。
04:04
变历呢,变历的时候呢,这有一个断言叫assert,这不是断言吗?断言is处,我判判定里边这个东西是真的。啊,就是判定这个是真的,他如果不是真的呢,我就会去给这样一个提示消息,判断什么是真的呢,这个角色不是以这个开头。啊,他判定这个角色不是这个开头,哎,只要他是真的,就可以继续往下走,如果他是假的,也就是说这个角色如果是以肉杠开头的,他就会说呢,抛出,呃,抛出异常啊,他就会把这个信息呢给打印出来,他说这个角色呢,Cannot start with肉杠。It is automatically added。解释一下。Spring security在这儿的意思是告诉你。告诉我们你在这儿,你加这个角色的时候,你自己不要加肉杠。
05:04
你自己不要加肉杠,我会给你自动的,会给你加,你自己不要加。他就这么个意思,你自己不要加,我会给你加啊,所以说呢,在这儿你看到他再往下往下走一步的时候,Authority往这个集合里边去放这个这个东西的时候啊,他拗了一个simple granted authority,肯定是granted authority就子类呗,或者是他的这个时间类什么的。哎,然后往里边传的时候呢,他给加了肉杠了。因为他要加肉杠,所以这儿告诉你说不让我们加啊,他给我们它自动的给我们加这个。也就是说呢,我们发现他在我们给用户去指定用户拥有的角色的时候,Spring security呢,也会给我们自动的把肉杠给加上。哎,然后呢,我们再往下看这个authority这。Authority这边我们传进来是这个,然后呢进这个方法。
06:05
呃,再进这个里边哈,再往里边进。嗯,Create,那就把这传进来呗,他这传的你看这个变量成了Rose了,但其实是我们传的一些权限的信息,然后呢,他往这走走。哎,这样加进来的时候呢,并没有去加这个肉干。也就是说呢,它和我们那个。呃,刚才看的是一样的啊,就是角色会在前面加肉杠权限不会在前面加肉杠。角色前面会加角色权前面会加权限前面是不会加的。嗯,我看我这边是在哪说的这个事儿哈。这边这还没有。那就是比较靠后了哈,这个事儿我记得这里边儿是有,但是我们先咱们在这儿来说一下这个事儿哈。
07:00
嗯,咱们找到找到这个。代码所在的位置哈。嗯,还是肉。肉。哎。稍等稍等,稍等。嗯。啊,这是我们这儿其实。都行吧,这边。啊,从这进来哈。嗯。再往里边走。走。嗯,就是主要是看这哈,我们把这部分源码哈,咱们截个图。其实这儿你看他也有这个判断,这就是说你要是角色以这个开头的话,他在这儿就会抛一个非法的参数的这个异常啊,他说肉术的not start with,角色不应该以这个开头啊,Since it since就是因为的意思。
08:14
哎,Automatically inserted自动加,自动加。诶,然后,然后关键是看这哈。Ctrl a。CTRLC。嗯。这里边哈,我们提一个注意。把这个注意呢,我们给它整的大一点。太大了。注意哈,斜体字,然后呢,血红血红的。注意,Spring security会在我们角色。
09:00
字符串前面加。绕下划线这个前缀。哎,这就是证据啊,证据就在这儿。
我来说两句