shiro学习13-访问权限控制-filterChainManager类

我们可以在spring的xml中配置任意数量的filter,即servet的filter,然后对某个路径或者是路径模板的访问使用这个filter。但是如何管理路径和filter的组合呢?这里介绍路径和filter的管理类——filterChainManager。这个类用于管理我们在shiroFilterFactoryBean中配置的过滤器和模板,以及配置的参数。 

使用的实现类是DefaultFilterChainManager,源码在shiroFilterFactoryBean中的构造方法中的createFilterChainManager方法, 

我们在spring的xml中配置的filter都被放入到这个类(filterChainManager)中的这个属性:filters,

还有一个属性是filterChains,这个放置pathpattern和经过pathpattern和多个filter封装起来的NamedFilterList,这个是为了方便再查找某个路径的对应的filterChain时采取的提前分类处理的办法。一个pathpattern(也就是路径模板)可以有多个filter,所以用NamedFilterList封装起来。

在这个类的构造方法中,可以发现他默认就有很多个过滤器,在addDefaultFilters方法中,DefaultFilter是个枚举里面定义了很多个filter,但是基本没啥用。

这个类也不难,就是做了两件事,第一获得spring中的所有filter,第二讲filter根据pathPattern进行分类。

相关推荐