00:00
我们一起来写filter的一个典型应用处理权限,我们首先呢把整个这个流程再来看一下。呃,打开这个articles。就这一个页面了哈。都是在以前班写的,然后呢,我现在呢,要来访问呃,这样的一些页面,我现在访问任何一个都没有权限,所以说都不都给我打出来哈,起码怎么样让我都需要进行。登录,那我就登录吧,现在呢,有两个人可以登录,一个是AAA,好了,你的AA登录之后我可以访问一二。三没有权限,四没有权限logout,我们再看这个人叫BB。
01:00
一没有权限,二没有权限,三有权限,四有权限,哎,Love,那我能干什么呢?我能来对权限进行管理。大家看一下啊,我AAA这个人进去。他们AA应该是有四个权一,就一共就四个权限,因为我们就四个页面嘛,1234好了,现在的话呢,AA只能够有一和二的权限,我把三和四都调整,大家看调整好了,然后这块我再来用AAA登录。123。四我就都可以访问了,Lockout,好了,我们再看BBBBBB呢是三和四,我给它改为一和四,修改了。带过来B。
02:04
我们来看,一可以,二没有,三没有,四没有。啊四九啊,然后的话呢,一个logout,诶,这就是我们整个这个一个呃,超小型的权限处理的一个模型,注意哈,这只是一个模型,真正开发的时候的话呢,还需要有更复杂和更这个嗯,更富有这个逻辑性的东西进来。我们前面讲课的时候我们说过是吧,比方说我不只是可以分配权限,权限上面可能还有对应的角色,包括可以更加的细腻度化,我这个页面的话呢,我可以访问,但只是到这个页面之后,某一些链接看不到,或者这个链接能看到,那个链接不可用等等等,但是我们现在我们学完filter之后,我们做一个这样的一个小东西,还是有一点意思的。好了,回过头来,来看我们如何来完成它。
03:06
新建一个。动态的。外部工程39。no.T哎,我们首先的话呢,我们需要需要思考一下使用。Filter过滤器是吧,完成一个简单的权限模型,我们应该如何进行完成,这里边的话呢,我们首先我们来说一下需求是吧,需求这个需求呢,刚才的话我已经进行演示了,我们把其中呃比较关键的几点给它抽象一下。第一点,我可以管理权限。
04:01
管理权限这块,我们实际上是几个呀,一。要说管理权限这块,应该是应该是几点啊,第一个一定是可以先进行查看某。人的权限,第二个呢,我一定是在查看的基础上进行修改吧,修改某人的。权限管理这块是好了,二。对访问进行权限控制。具体说,有权限有。权限可以访问。提示啊,对不起,没有权限看看。
05:01
哎,否则告诉他有这样一个提示,具体需求的话呢,也就这么多。好了,那我们看第二个吧,我那我们进行这个完成这个需求的话,那我们基本的开发思路是什么呢。我们也是分为两块是吧,做实现啊第一块。我们先说这个后台的管理权限。好了,既然说到了这个管理权限,第一个是查看某人的权限,那于是出了问题了是吧?那权限和人我们如何来进行封装和抽象,那怎么写啊,叫封装。权限信息,权限信息第二个呢,封装用户信息。
06:03
啊,我有这个实体类啊,好了,这两个实体类的话呢,比方说这个权限我们就authority。人呢,比方说我叫Yoga,写好。这两个都,这两个都写完之后的话,然后的话你怎么了,我们看我可以查看人的权限,还可以修改人的权限,所以说我们需要一个什么呀。创建一个。DAO,我这个DAO的话呢,就一个DA了哈,Authority。哎,那么这里边应该有几个方法,我们从目前这样看的话,第一个是查看某人的权限吧,我们想怎么做。第二个是修改某人的权限,那这么说的话,你看哈,查看某人的信息,修改某人的信息,哎,这个你写为user也可以,反正无论是这个authority也好,User也好,反正我就一个DAO说方法,我就全放里边好了,那user dau的话呢,第一个是查看某人的权限,怎么查呀?
07:14
看看怎么查的来,我把这个名字输进去,然后呢。这块给我显示这个权限信息吧,是吧,所以说这个人优我没有ID啊,我们这里边没有没有往数据库里边放,我们就是在这个内存里面,那我首先我会有一个private student user name还需要什么。权限吗?是吧,我一个人可能会有,你看我一显示我说啊,这个人的权限是什么,所以说应该是有一个权限信息。写错地方了啊这。
08:09
Least authority。Authorities。这么写其他的东西的话呢,再从干看方法什么的,我们就不写了,就是人,这要是人的话,我们看的DAO,我们DDAO方法是什么呀,叫查看某人的权限,你得怎么写啊。查看某人的权限,那我把这人全换出来吧,有点。根据什么来获取?User nameme,返回一个user,然后我查看某人的权限,我怎么办呢?我是不是可以在这个基础上来获取这个authorities啊,可以查看了吗?OK,这是第一个。
09:06
第二个呃,修改某人的权限do修改某人的权限,我update修改怎么改啊,看怎么改的哈,修改。我一点。这就改了,大家觉得我这么一改的话,我传的应该是什么,我传的应该是哪些东西,你得告诉我改的是谁的吧,是吧,我这边没有ID哈,因为我们没往数据库里边放u user name,然后还有一个什么呀,那我改完之后我的权限是什么呀,看。哎,这就是dau里边这两个方法,两个方法就够用就够用了,是吧,U的话等于这些authority有什么呢。还不好说,不知道,或者说我从这上看的话,我只能看到啥呀,我只能看到哦,它有一个名字是吧,有个name来。
10:09
第一个有个private型的。预备,那我们可以看见的名字是显示到页面上的权限的名字,好了,那有这个名字之后的话,我还能干什么呢?我一个权限还要还要跟什么关联呢,我们想哈,想我返回在我们这个里边,比方说我能不能访问这个一。回馈二。不能访问哈,一可以访问,二不能不访问,靠是什么呀?我靠的是这个人有的权限吧,好了那就那就涉及到我如何对这个权限进行过滤呢?就是我用户的话呢,我有一帮权限是肯定的了。
11:04
啊,我的权限是什么呀,刚才我们看到了是吧,这个权限应该是一个。Authority的一个list好了,用户信息的话呢,我们基本上已经定义好了用户信息,也就是他俩那权限里面都有啥呀,有一个名,还需要有啥带选择,这个可以访问,这个不能够访问,这说明什么?这说明我不但要名字,我还要啥呀?你看啊,我AAA这个人,我有一。二四这个权限好。AA,一可以访问吧,二可以吧,四可以吧,三不行吧。什么书名?我在这个权限里边,除了这个名以外,我还得有个啥呀。
12:04
都有啥呀?我要是想访问的话,比方说我想访问这个ul的话,你看我点它,我能不能访问,我靠什么呀。我实际上我靠的是不是这个访问这个路径啊,所以说在我们这个里边,我一个权限对应着一个ul权限,对。硬的U。RL还有个它等于L好了,那做项目的时候的话呢,这一个权限可能会对应着多个ul,比方说我修改。我修改的话,我是不是得先查看,然后才能修改啊,所以说开发的时候的话呢,这个需要这么写。就是说我一个权限应该对应了多个ulg,这个权限ul之间应该是一个。
13:06
一对应该是一个多对多的双向关联关系,但我们这个里边的话呢,比较简单,我们就一个就可以了,说哎一个权限。对应的一个ULUL,例如,例如比方我有一个什么权限,我有这么一个权限。一这个权限这是名的是谁啊?你看一能吗?In your car。懂这意思吧,这就是我们的authority,那你看我一个用户的话呢,可能会有多个authority,比方说哎,我这里边我可以访问多少个ul,我一过滤就可以了,这就是权限和人的信息,D这个也写完了,好了,权限管理。
14:09
这两个有,然后权限管理的话,看页面吧。嗯。页面还有一个什么呀,还有一个SOMVC设计模式吗?是吧。页面我们看页面来。然后这样。第一把的话呢,是给了我们一个什么呢,给了我们这么一个,实际上长得不是他。啊,是这么一个页面叫什么呀,叫方managerp。这因为比较简单了是吧,说什么呀,有一个text文本框中输入有点内,然后呢,提交后。
15:07
遥控去哪呀?大小。我提交之后肯定是经过了一个sol是吧,然后的话呢,显示当前用户所有的信息。使用显示当前用户所有的权限的信息好了,那这个JP本身比较简单好了,下边的话呢,我们看哈看说呀,我要是提交这个信息的话,我说你提交给我来这个页,大家说这个service它都干什么了。嗯,第一个说这个提交后。
16:00
提交表单后,这是干啥了?想想来,你看。来写一遍啊,AAA。好了,这个时候的话,他肯定先需要获取AA的信息吧,肯定的呀。获取表单的请求参数,请求单数是个什么呀?就name吧,然后呢。在。根据这个U的name获取什么呀?获取U的信息吧。我们是不是已经写好了呀,用到name团是不是获取这个U啊,然后呢。把。达放入到什么?
17:02
然后还有什么呀。然后呢,转发到一个页面页面,这个页面应该是个啥页面呢。就是这个页面。还没写名这个,因为我们叫看这页面叫啥名啊。这个人无所谓时。实际上。Authority manager.jsp就是还是回这个页面了,只不过的话呢,它显示了同样的信息,那我们再发想要什么呢?想转转发到这个页面。好看,然后呢,啊这就完了,So,最开始这个提交以后干的事就这么多事,那我们看这个吧,这个干的活就不只是这么单一了哈,第一个活儿是这个活儿。第二个活儿呢。
18:00
什么呀,检查。呃,Request中是否有U端信息吧,若。若有则显示什么呀,如果有的话,那就就显示谁谁的权限是什么什么什么啊,说叉叉叉的权限。喂,什么什么什么,这行吗?然后底下这个地方很有意思,这需要看一下哈。就这个写法,哎,我怎么样让我有的这个权限给选上呢,懂这意思吧。你给我写个MMM。CB,看这个哎,写的是一和2AA显示它,当然了,我这里边我要写个222没有就同什么不显示。
19:03
如果有的话,那我们调整怎么调的呀。嗯,大家看这哈,这玩意儿没有想那么容易,我怎么调他呀。大家可以思考一下这个问题。可以思考一下这个问题,说啊前线是什么什么,怎么样呢,说对应。的权限。The check box。什么打上。病号就是这个时候什么样被选中了是吧,你看哎被选中了好了,怎么样被选中呢?大家可以思考一下,我们给一些最基本的提示说无论。提示,提示页面上需要。
20:07
通过两层。循环的方式来。筛选出。被选中。被选择的权限,行了,我就说这么多,具体实现的话,大家写一下好了,再回来,再回来。我如果我这个写完之后的话,王格萨米这个你你你要改了吗。这个什么,我们对应的这个叫权限的修改。好,刚才查看哈,我们再看呃,权限的修改,那还是这个页面。这页面这个页面的话呢,应该是有两个表单,这个页面什么呀,修改权限。
21:07
邓表单。提交后第一个是什么,第一个是不是查看的,第一个是这个查看这个被提交,第二个是修改这个被提交好了,这被提交之后的话,我应该怎么样。Service里边应该需要干什么,很明显应该是两个方法啊,第一个一样的获取请求参数都有啥呀。必须有u name吧,那个我改的是谁呀?还有呢,还有还有什么大家觉得。我这玩意也得他也得提交上去呗,叫authority。括号告诉这是一个多选好了,获取完呢。
22:01
获取完信息呢,然后呢。然后我们最终我们要调的是不是这个方法。是吧,所以说什么呢,说把。权限封装为list,然后呢调用。有的DAO的什么方法呀,这个方法。实现权限的。权限的修改,这然后呢,呃,转发到重定向也可以哈,重定向好,因为这个地方我不需要显示了,到这个页面就可以了,我们这个肯定成功,因为我这没有连数据库我都是在一个do里边来写的,好了,这就是我们讲的第一个关于管理权限的具体实现是什么样的。
23:10
再再看一下管理权限这块的话呢,实际上我就是在这一个页里玩来玩去是吧,首先我说个AAA。你要给我显示我有的学习信息,我打上一个条,你要可以让我修改信息,再查的话,修改之后的这就可以了,这是我们要求好了,为此呢,我们创建了一个authority,这个authority里边啊。嗯,有一个名字这个ul啊,目前还用不上,这个我们后边用目前还用不上,然后呢。U的U的有个U的name,往dau里面有两个方法,有个JSP,还有一个,那我再来写一写哈,写个什么呢。
24:00
39。写不对。给他写一点这个开头的。Come at推谷点JA外。来。我们写一个。再写一个优点。好了,后来authority里边呢,有这样的两个段。我目前这个简单啊,我实际上在进行开发的时候啊,我们应该有ID,其一其二的话呢,一个权限应该对应to ul,我们这个给它简化了。对应的概赛方法。
25:01
呃,为了构造方便,再写一个代餐的构造器,那我我们这个不需要反射。因为我根本就没有没有数据库是吧,但是的话呢,我们还是加上那个无彩的包装器有的。嗯。Control the o。好,盖再多了。代餐的多装器。午餐的老师。写完好了,我们下边主要是写的,写一下这个优惠。因DA呢,目目前看的是什么呀,可能还会有其他的方法啊,比方说学习访问的时候还有其他方法,在目前我们看到的是有这样的两个方法。
26:10
我需要给他,只要给他简单的写一下,第一个叫。有的。第二个呢,进行更新。好,写完写完之后啊,我们初始这个工作的话呢,在这写,我们需要我们需要有一些最开始的初始化,因为我没有真正的去连数据库看,这初始化怎么写呢?写一些静态的。
27:07
比方说哎,我有两个用户的信息。用户的信息,因为我我要干什么呀,我要根据名字来查用户,设置用户信息的话呢,这么写。这里边儿我们对优端进行初始吧。巴西。好了,然后呢。这里边我们会有,呃,会有几个人是吧,比方说U多点人,一个是AAA,后边这怎么写还是个问题。后边你得有一个具体的一个优点啊,于是写一个优点。
28:10
这个时候我需要什么呀?我需要一个名字,这个名字是AA,这个是一定的了,是吧,这个authorities怎么写,因为他是第一个人是有权限的,所以说这块我们还得写个权限,权限怎么办呢?我这里写个list。Author等于new。No。好了,写完。这个写U1,但我这么写完之后的话,我这个用户是不是一个也没有啊是吧,我还得加两个权限进来,sorry.add比方说一啊,我有两个权限new authority,所以呢,名字名字呢,我们我们也我们也这么写啊,比方说article。
29:15
一横线一好了,GP这个GXP呢,那比方说我所对应的一,我看一下啊,一是他。根目录下的那个C。过来。这个我写个横线啊。嗯。嗯。登录这个就APP4啊,他还是要的是吧,行。就这样写吧,我有两个权限,我还能访问二。写完了。这是一个,来,我来写第二个。
30:05
这个呢,权限我让他有三和四。然后,然后怎么的,这个人叫BB。好了,我把这个写完之后呢,大家看底这方法是不是就好写了。引力括号就好写了,自个儿去自个儿去实现啊好了,这个写完之后的话呢,我们再过来,我我们再过来看,这个时候就差不多了,这个页面开始的时候长成这个样子,大家大家看一下啊,你可以目前开始截个图啥的。Authority manager。
31:03
这个长成这样。嗯。哎,这个页面最开始的时候就长成这样,过来原文件。CTRLC,我复制给你,最开始的时候他就长成这样。就是说我都请用这个sol,然后我通过通过这个什么,我通过这个method指定我需要去什么方法,它就长成这样好了,那我显示完这个显示权权限的时候,它长得什么样呢?去看一遍。呃,被告AAA或邮件原文件。这个样子你就复杂了。CTRLC,我们可以把它给大家这个那些空格啊,我可以去一去大家看一下是什么样子就可以看。
32:18
这一个格。嗯。好了,你看这个时候的样子的话呢,首先我还是有他的,他是谁呀,这是证据上面这个缝啊,那如果你有信息的话,我就显示谁谁的权限是什么什么什么啊,填一个格啊A的权限是好了,大家看这里边是不是还是一个form啊请求,然后怎么了。
33:06
然后能想到吧,我会有一个隐藏欲吧。因为我下次提交的时候,我是不是要通知提交权限信息和哪个人呢,人需要放在这个。隐藏域里面我来写说用户信息。呃,使用。隐藏,欲来保存。用户。对吧,Name用户的name哈,实际上的话呢,这块保存的也可以是ID,然后呢,看哎,我是一个。这个我们看到一个什么呀,他是被check是被选中的,因为我这个人有这个权限,第二个。
34:01
我也是被check的。然后你想是吧,我如何保证我是这个。也是T。最后一个不是最后一个什么样就是正常。然后一个什么游戏按钮。按钮,然后这个缝就完成了,这就是我们现在这个页面的具体的。情况,然后怎么样,就是SERVICE2个方法了是吧,这应该如果要是按照我目前这个,这应该对应的是什么方法,这个应该对应的是叫get的方法,这个对应该是的方法。行了,到目前为止的话呢,我们关于这个,呃,权限管理这块的这个。架子呢,就完全搭好了,翻过头来再来看一下这个如何实现的哈,我首先我请的这个页面叫manager。
35:18
不是。在这个。From c y。哦,在APP几下的是。这应该V4。首先我显示的是这样的一个页面。最开始的,然后输入AAA,这个要显示我已经有的权限信息,我说修改给提交它这个页面我再查,我已经是被修改好的,看到了吧,就是我们刚才所分析的全部内容,这个框架的话呢,我基本上已经搭好了,大家现在沿着我的这个框架把这个功能完成。
36:12
需要交代一下啊,但目前这个里边并没有跟。真正权限过滤有关的内容,就是我们还没有用那个filter去完成这些功能,我们只不过怎么样,因为我们需要修改权限吗?这这块的话呢,是我们前边讲的MVC设计模式的一个典型实现,搞一下。
我来说两句