Shiro Filter的设计概念

FilterChainManager

其行为有:

DefaultFilterChainManager

其具备javax.servlet.FilterConfig(过滤器配置)、Map<String, Filter> filters(过滤器集合)、Map<String, NamedFilterList> filterChains(过滤器链集合)

构造器中添加Shiro的默认过滤器

public DefaultFilterChainManager() {
    this.filters = new LinkedHashMap<String, Filter>();
    this.filterChains = new LinkedHashMap<String, NamedFilterList>();
    addDefaultFilters(false);
}


protected void addDefaultFilters(boolean init) {
    for (DefaultFilter defaultFilter : DefaultFilter.values()) {
        addFilter(defaultFilter.name(), defaultFilter.newInstance(), init, false);
    }
}

protected void addFilter(String name, Filter filter, boolean init, boolean overwrite) {
    Filter existing = getFilter(name);
    if (existing == null || overwrite) {
        if (filter instanceof Nameable) {
            ((Nameable) filter).setName(name);
        }
        if (init) {
            initFilter(filter);
        }
        this.filters.put(name, filter);
    }
}
 
 

猜你喜欢

转载自www.cnblogs.com/BINGJJFLY/p/9354709.html