public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        if (bean instanceof Filter) {
            LOGGER.debug("Found filter chain candidate filter '{}'", beanName);
            Filter filter = (Filter) bean;
            applyGlobalPropertiesIfNecessary(filter);
            getFilters().put(beanName, filter);
        } else {
            LOGGER.trace("Ignoring non-Filter bean '{}'", beanName);
        }
        return bean;
    }
Inspects a bean, and if it implements the {@link Filter} interface, automatically adds that filter
instance to the internal {@link #setFilters(java.util.Map) filters map} that will be referenced
later during filter chain construction.
support/spring/src/main/java/org/apache/shiro/spring/web/ShiroFilterFactoryBean.java