首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Shiro框架学习,Shiro拦截器机制

1、NameableFilter NameableFilter给Filter起个名字,如果没有设置默认就是FilterName;还记得之前的如authc吗?当我们组装拦截器链时会根据这个名字找到相应的拦截器实例; 2、OncePerRequestFilter OncePerRequestFilter用于防止多次执行Filter的;也就是说一次请求只会走一次拦截器链;另外提供enabled属性,表示是否开启该拦截器实例,默认enabled=true表示开启,如果不想让某个拦截器工作,可以设置为false即可。 3、ShiroFilter ShiroFilter是整个Shiro的入口点,用于拦截需要安全控制的请求进行处理,这个之前已经用过了。 4、AdviceFilter AdviceFilter提供了AOP风格的支持,类似于SpringMVC中的Interceptor: Java代码

02

filter控制url访问

在做B/S开发的时候,安全性是必须要考虑的问题。其中有一个问题就是url的访问控制,具体来说就是你不经过登录页面登录那么你就不能访问后面的管理页面,或者是会员进去之后才能看到的页面。 以前用C#开发ASP.NET项目的时候是在每一个页面后台代码的page_load事件中对session进行判断,if语句实现如果没有相应的session值就会跳转到login页面或者index页面。如果仅有十几个页面也就罢了,但是如果后台页面几百个呢?总不能每一个页面都写一个吧。那么在学习javaweb开发的时候有了一个很好的解决方案,那就是通过filter来解决。 这个Filter就像是web系统的一道防火墙,你要访问任何资源,都会经过它的许可才行。所以这个“防火墙”里面的规则设定尤其重要,其中一个就是对url的访问控制。 实现的基本原理就是:在实现Filter接口的类中判断当前访问的url,如果不是登录页面,那么就判断session是否为null,判断session里面指定的参数是否为null。这样就可以了。

02

为什么要用Filter(过滤器)?

马 克-to-win:当n个html,jsp和servlet执行前或执行后都需要做同一件事,执行同一段代码时,为了避免反复拷贝黏贴,造成n个版本的代 码,从而使代码维护异常困难,我们可以使用filter(过滤器)技术。马 克-to-win: 比如,如果用户要访问某些html,jsp或servlet,我们首先需要判断这个用户是否曾经登录过,如果没有的话,就把他打回到登录页面。登录之后再 让他访问想要访问的页面。这段判断的代码,如果要出现在要保护的每个jsp或servlet之前,这显然涉及到n多次拷贝黏贴。马 克-to-win:哪天需求改变一点的话,所有涉及到的jsp或Servlet,都需要改动,一旦有一个忘记改动,就会出现错误。代码维护工作,显然异常 繁重,而且重复工作巨大,毫无乐趣和成就感,眼睛看到花而且极易出错。马 克-to-win:想象这段判断代码,如果只放在一个地方,就能解决问题,那一定是一个绝佳方案。你别说,还真有这样的方案,那就是filter(过滤 器)。

04

【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第七节)

01 国庆长假终于结束了,博主想到以往这个时候,自己就已经回到学校,和一群基友扯扯犊子,顺便吹吹牛,好不快活,可惜这种生活不会再有了。虽说如此,但是参加了工作以后,毕竟有更多的时间去做自己想做的事情,没有了学校里的那么多约束,也不再需要为了考试忙活个半天,想来也是不错的。 好的,再次回到这个系列。 不知不觉,我发现自己在简书已经写了好几万字了。当我无聊的时候,就会去看看自己之前写的文章,然后感到很奇怪,似乎那些东西根本不是自己写的一样。我仿佛是在看别人的文章,好长时间我都有这种感受。 这真的是挺奇怪的,不过

010
领券