00:00
这个有问题存在,咱们不解决不太念头不通的。所以说呢,这边咱们我去咱们看一眼哈,我们的异常的处理器的类。嗯。这是个哦,我想起来了,这是这个异常呢,不是我们这边没有映射这个异常。啊,你看啊,你看我们这个映射的是login account already in use。是账号被使用了,这个是账号也是账号被,呃。啊,这是一个更新的,一个是保存的,诶这是登录失败的是吧,这个是访问被拒绝的,所以说呢,现在这么看的话,我们这儿没有写这种这个映射。啊,是因为我们没有写这个映射。没写这个映射呢,他就会去走,我们这个就基于注解这边找不到匹配的。诶,基于注解这边找不到匹配的,他就会去找我们这个GX毛的,GX毛的就走走走走他了,这边就只能返回页面了,是这么个原因啊,这个我明白了。
01:08
那怎么办哈?呃,咱咱们其实应该看看他抛啥异常是吧。这玩意,这从哪能看到?不是403哈,就是说我想想啊这个。这个exception handle,这是不是可以去整个。他这这个没有没有什么别的可以映射。嗯。要不咱们这边让他基于注解这边吧,就简单粗暴的就是让他也整个这个exception的,反正这个呢,这个异常是登录拦截器里边抛这个异常登录拦截器已经干掉了,已经不用了。所以这个异常呢,也用上了,咱们就废物利用一下。把这个去掉。
02:05
哎,我们这也映射exception,它这也映射exception,哎,那这时候看看这个两边都映射,看他走哪边。Ctrl shift o ctrl s。试一试啊,嗯。如果他能从我们基于注解这走,它就能走到我们common reserve走到这里边,我们就能够去判断它是不是Ajax请求,如果是的话,就封装result ENT转成杰son返回,我们就页面上就会有lay的那个显示,就不会说就不会说到那个返回到那个页面了。哎。嗯,就是我们。渐渐的进入到高潮了啊。我们以前这边做的东西,我们这边就这不就都用上了,我们现在是用admi operator登录的。
03:02
点角色维护这边过来了是吧,其实这说明一个问题。呃,注解基于注解的异常映射和我们基于X毛的异常映射,如果他们呃映射同一个异常的话,它C看这样是优先走我们注解这边对吧?哎。嗯。效果哈,这边再来一个补充。补充,嗯,这个补充呢,就是。说我们,嗯,修修修正或者说叫做。呃,完善一下我们基于注解的异常,呃映射,哎,这个异常映射这个类呢,在在在这。
04:01
啊,在这边干什么事了呢?去找了一个exception的这个映射。啊,就是据注解这边呢,去映射了它。嗯。同时呢,我们有一个发现。哎,基于注解的异常。映射和我们基于S毛的一场映射。嗯,如果。嗯,映射同一个异常类型,那么。嗯,基于注解的方案优先。啊,就他会先去找这个了。那顺便呢,顺便我们去把刚才这个哈,刚才这儿还访问403,那说明这个吧,没有没有去经过我们那个一场映射,对这个为啥就经过不了一场映射呢。
05:06
哎,这个,嗯,结果为什么没有经过我们这个异常。呃,映射这个机制。哎,你想异常映射是谁提供的?是什么MC提供的?呃,他们之间的这个范围呢,是这样的哈,你看。他请求请求处理请求呢,它其实是先有我们的。他得先先找我们过滤器哈,过滤器就是我们这个deli呃。Delegating filter proxy。他得先去找这个过滤器。过滤器里边放行了以后呢,它才能够去找我们dispat。
06:03
诶。哎,他才能去找这个dispat。呃,Dispatch里边是么?Mac才能有spring Mac的这个功能啊,它才会去,呃,进入到我们spring Mac的这个拦截器啊。呃,这个异常映射呀。哎,那然后如果说我们现在把这个。没有权限访问的时候。过来一个请求哈,这个请求呢,他没有权限,没有权限这个。F呢?就直接去那个找谁了,直接去这个403页面了,直接就返回403了。这个就没有从我们底子拍这so这儿走啊,他压根就没从这走。那么你使MC的东西当然就不起作用。
07:02
啊,这没有从这走。嗯,但是那么我们基于注解这个为啥管用呢?啊,那这个基于注解的吧,它是标记在这个方法上的。他已经进来了。啊,就注解的这种啊,他已经进来了,他已经进来,他就他检测到这个问题以后呢,他抛异常,他抛异常他在调我们这个方法的时候,你想他调我们方法时抛异常,那么4MC就能够就能够拦截到了啊,也就是说再往里边一层呢。就这个再往里边一层哈。嗯。这我们这样画一个框哈。再往里边一层呢,就是我们的这个handle方法。Handle方法里边再往里边呢,就是我们service方法。哎,所以说你在这儿抛一场,他往外抛一一一一气往外抛,那他当然能够就就就能管得着啊,那么你这个东西再往外的话,那就是他们cat了。
08:03
哎,你他们开的再往外就是你操作系统是吧,操作系统再往外就是你的这个硬件,硬件再往外就是那个网络。啊,那肯定这些东西都是连着的啊,哎,所以说这个不经过这这个所以。嗯,要。在我们spring。中啊进行这个配置。它的配置类中。呃。来。那么我们过来配一下。啊,那就是这个不让访问的这个页面哈,认证以后访问,然后在这咱们去配一个不是这个。
09:08
叫exception handling,对。Access denied配置。哎呀,这个我想想啊。我们现在有没有这么个页面哈。页面就还是得去这个exception error这。呃,叫对。就得来这儿,来这儿,那么我们就是说得带一个消息过来哈。嗯,这边你从异常里边取,这边这儿不是异常。呃,说还不是说你直接来这个页面就完事了,你要不就专门准备一个页面。就专门准备页面,说是你这个没有权限可以访问啊,就是你你不能不能访问,没有没有权利访问,他专门写一个页面,要不呢,你就在这儿就写一个我们的handly。
10:03
啊,这个地方有没有这个汉字里。Ler哈,那么咱们就得去用一个access。匿名内部类。呃,在这里边儿呢,咱们去。这个set at tribute。嗯,就在这先写个闹哈,我们就是说得把什么东西放到请求域,然后呢,我们去转发过去。Get request dispat their forward。呃,转发到哪哈,这个是我们web info下边的。下边这个system error,角P。哎,那么我们要去这儿的话呢。如果我们还是要是exception的话。
11:02
我们能不能自已尿个exception?Exception。里边儿去给他传个消息哈。传啥消息呢?C。这话怎么说的,客气一点?滚蛋。啊。这个是说登录以后再访问,我们不是登录以后再访问,这个我们叫access denied。诶。这怎么成了protected?哎,然后在这儿呢,说这个啊,抱歉。
12:00
您不能访问这个字眼。然后这边有个警告,可能L是我的哦。啊。嗯,对,我们是做了这样一个处理,指定了一下这样一个地方,咱们跑一下试试啊。这个去in to login。这个我们用admin operator。啊,不对,应该用肉operator。我们让他去访问这个用户的维护。哎,能过来哈,哎过来说你不能访问这些,哎挺好。所以说在这儿的话,就是去加一个。
13:00
这个东西。叫这个security这个对象啊。叫这个方法,嗯,然后这里边儿就是我们去,嗯,主要是主要是他。我们自己给了一个一个操作的方式,就是说因为我们得带消息过去啊,是想带消息过去啊,并不是说直接去个页面就完事了。
我来说两句