分析shiro拦截器的filterChainDefinitions配置
发布时间
阅读量:
阅读量
对Shiro源码进行分析,查阅了一些相关资料,针对在Shiro框架中配置filterChainDefinitions时遇到的一些小问题,进行如下分析并作为备忘记录。
问题描述:
在配置filterChainDefinitions时,若将/k/**的规则设置在/k/index之前,则/k/index的配置将无法生效。根据相关规则可知:拦截器的优先级是按照从上到下、从左到右的顺序执行的,一旦某个拦截器匹配成功,后续的拦截器将不再执行。
设置过程如下:
1、通过调用ShiroFilterFactoryBean.setFilterChainDefinitions方法获取基础参数,并将其转换为Section键值对形式。其中'='左边为键,右边为值,并存储至filterChainDefinitionMap中。此时使用的是LinkedHashMap结构,具有有序性,因此过滤器的执行顺序也具有先后之分。
2、调用ShiroFilterFactoryBean.getObject方法(该类实现了FactoryBean
3、在createInstance方法中构建了一个FilterChainManager对象,在createFilterCh
全部评论 (0)
还没有任何评论哟~
