00:00
OK,准备好了,下面的话呢,我们来实现这个授权RO,我们打开这个CRO,实际上目前我们是有两个RO了是吧,因为刚才的话呢,我们说到了多room授权的话只有一个过就可以,所以说这个second room我们就不管它了,我们看这个zero room,我首先把继承这个类的话呢改一下。改成看。Ctrl shift o导入这个类,CTRL1加入这个图形方法,这个就是我们授权的时候需要实现的方法。我们先不去实现它,先做一个打印。看什么呀,看这方法能不能跑得通。跑起来。
01:01
拿过来。Lockout let me 123456,走,注意,我来点。受保护的页面配置是不是打进来呀,所以说整个跑的话呢,是跑得通的,跑过来,现在我们来看如何来实现这个方法,第一步这是一个princip collection,应该从这个里边来获取登录用户的信息,从这个中获取登录用户的信息,第二步利用登录用户的信息来获取当前用户的角色话。权限,那这个时候的话呢,有两个办法,一个是这个登录用户信息里边已经包含那个权限信息了,还有可能的话呢,需要查一次数据库,可能。
02:01
需要查询数据库。三、创建。这个authorization info,这是一个接口,我们需要创建这个simple info,并设置其另有一个属性Rose。属性,最后返回这个对象,好,我们这里边的话呢,还有一个小问题,因为我们怎么了,我们是两个RO吧,把这个RO打开,这个RO,当时我为了这个验证,不过是吧,我把这个拿过来。拿回来OK,如果要是两个room的话,那这个时候它返回的是一个second room name,而我这个room呢,我返回的这个,呃,认证实体的话呢,实际上是这个什么呀,是这个。
03:00
是user name是吧,那我这两个room实际上在配置的时候,他们是有顺序的吧,我们看一下它配置的时候是有顺序的,因为搞的是一个list嘛,所以说当我们在获取这个RO的时候啊,当我们这RO里边去获取这个principle的时候,这个时候它也是有顺序的。等于s.get点一下,我们过来看CTRLT。这个实现哈,这里边我们获取的是直接就是那个什么呀,叫next,我们获取的是下一个看到了吧,哎,获取的是下一个it是什么呢?实际上是就是个site,我们再点这个site是principle room principles。直接搞的这个values大家看见了吗?那这个principles是个什么数据结构呢?它实际上它是一个link的哈希map,我们来看一下这个效果吧,这块我来加上一个断点。
04:10
周期,只有这样的话,我才能够保证我获取那个prime principle是我希望的那个值,否则的话不就差了吗?回来123456,走起。我们看它大家看这是一个什么呀,这是一个link的map,所以说放的话,放那个principlein,那个是有先后顺序的,大家知道吧,一定是先放第一个RO的principle,然后再放第二个RO principle OK,这过了啊。所以说我们在这个里面,我们可以放心的来看这个值是谁啊,这个值就是goodin或者是。点equals,如果principle是他的话,那么于是的话呢,我需要来搞到这个RO set RO等new哈希set。
05:11
无论是U还是ain,我都给它放上一个角色,叫U,如果它是ain的话,那我就把这个admin给它加进来,然后创建simple authorization in等于new simple this rose1放直接返回就可以了。这个时候的话,我们看到如果你用U登录的话啊,那你只有只有U的这样的一个角色看到了吧,如果你要是用adin登录的话,你见有这两个角色,所以说这两个人登录之后的话呢,可以访问的页面是不一样的,优只能访问一个,而ain可以访问两个,看效果。
06:05
诶让我关了哈,把这个打开。我们得先login点儿JSP。注意看ADMIN123456,进来两个都可以访问,走可以吧。可以吧?Look out,来123456再走,注意,You只能访问一个in,访问不了吧?U可以吧,OK,这样的话呢,授权这个RO我们就实现了,实际上主要是这块的这个方法。那我们还讲到了多RO的时候,你获取这个prime principle跟我们那个多。访问顺序返回的principle是有关系的,因为我们在那个呃,Link的哈,Map里边放的时候,它是有顺序的。
我来说两句