2017.2.12 开涛shiro教程-第八章-拦截器机制

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398

根据下载的pdf学习。

 

1.拦截器介绍

下图是shiro拦截器的基础类图:

 

1.NameableFilter

NameableFilter给Filter起个名字,如果没有设置,默认就是FilterName。比如之前的authc,当组装拦截器链的时候会根据这个名字找到相应的拦截器实例。

 

2.OncePerRequestFilter

OncePerRequestFilter用于防止多次执行Filter,即一次请求只会走一次拦截器链。另外提供enabled属性,enabled=true表示开启该拦截器,enable=false表示关闭该拦截器。

 

3.ShiroFilter

ShiroFilter整个shiro的入口。

 

4.AdviceFilter

AdviceFilter提供了很多AOP风格的支持,类似于SpringMVC中的Interceptor。

1 boolean preHandle(ServletRequest request, ServletResponse response) throws Exception
2 void postHandle(ServletRequest request, ServletResponse response) throws Exception
3 void afterCompletion(ServletRequest request, ServletResponse response, Exception exception) throws Exception;

 

(1)preHandler

preHandler 类似于AOP的前置增强。在拦截器链执行前执行。返回true则继续拦截器链,否则中断后续的拦截器链。用于预处理,如基于表单的身份验证、授权。

(2)postHandler

postHandler 类似于AOP的后置返回增强。在拦截器链执行完成后执行。用于后处理,如记录执行时间等。

(3)afterCompletion

afterCompletion类似于AOP的后置最终增强,即不管有没有异常都会执行的部分。用于进行一些比如清理资源(Subject与线程的绑定等)的操作。

 

5.PathMatchingFilter

PathMatchingFilter 用于提供基于Ant 风格的请求路径匹配,及拦截器参数解析等功能。

1 boolean pathsMatch(String path, ServletRequest request)
2 boolean onPreHandle(ServletRequest request, ServletResponse response, Object mappedValue) throws Exception

 

(1)pathsMatch

 

转载于:https://www.cnblogs.com/lyh421/p/6394064.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值