shirFilter(SecurityManager securityManager) { //1.创建shiro过滤器工厂 ShiroFilterFactoryBean filterFactory = new ShiroFilterFactoryBean(); //2.设置安全管理器 filterFactory.setSecurityManager(securityManager ); //3.通用配置(配置登录页面,登录成功页面,验证未成功页面) filterFactory.setLoginUrl("/autherror? code=1"); //设置登录页面 filterFactory.setUnauthorizedUrl("/autherror? (filterMap); return filterFactory; } //配置shiro注解支持 @Bean public AuthorizationAttributeSourceAdvisor
final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory RelFactories.AggregateFactory.class), RelFactories.DEFAULT_AGGREGATE_FACTORY); this.filterFactory filter, frame.fields)); } return this; } //...... } RelBuilder在构造器里头创建了RelFactories.FilterFactory /org/apache/calcite/rel/core/RelFactories.java public interface FilterFactory { /** Creates a filter 创建RelNode构造新的Frame,然后重新放入deque的队首;FilterFactoryImpl实现了FilterFactory接口,createFilter方法执行的是LogicalFilter.create
final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory RelFactories.AggregateFactory.class), RelFactories.DEFAULT_AGGREGATE_FACTORY); this.filterFactory /org/apache/calcite/rel/core/RelFactories.java public interface FilterFactory { /** Creates a filter RexVariable、RexFieldAccess等),然后再执行Apache Calcite的RelBuilder的filter方法 RelBuilder在构造器里头创建了RelFactories.FilterFactory 创建RelNode构造新的Frame,然后重新放入deque的队首;FilterFactoryImpl实现了FilterFactory接口,createFilter方法执行的是LogicalFilter.create
shirFilter(SecurityManager securityManager) { //1.创建shiro过滤器工厂 ShiroFilterFactoryBean filterFactory = new ShiroFilterFactoryBean(); //2.设置安全管理器 filterFactory.setSecurityManager(securityManager ); //3.通用配置(配置登录页面,登录成功页面,验证未成功页面) filterFactory.setLoginUrl("/autherror? code=1"); //设置登录页面 filterFactory.setUnauthorizedUrl("/autherror? (filterMap); return filterFactory; } //配置shiro注解支持 @Bean public AuthorizationAttributeSourceAdvisor
shirFilter(SecurityManager securityManager) { //1.创建shiro过滤器工厂 ShiroFilterFactoryBean filterFactory = new ShiroFilterFactoryBean(); //2.设置安全管理器 filterFactory.setSecurityManager(securityManager ); //3.通用配置(配置登录页面,登录成功页面,验证未成功页面) filterFactory.setLoginUrl("/autherror? code=1"); //设置登录页面 filterFactory.setUnauthorizedUrl("/autherror? (filterMap); return filterFactory; } //配置shiro注解支持 @Bean public AuthorizationAttributeSourceAdvisor
names来加载配置文件 private void load(String location, String name, Profile profile, DocumentFilterFactory filterFactory , DocumentConsumer consumer) { DocumentFilter defaultFilter = filterFactory.getDocumentFilter(null ); DocumentFilter profileFilter = filterFactory.getDocumentFilter(profile); // 当前没有profile , DocumentConsumer consumer) { DocumentFilter defaultFilter = filterFactory.getDocumentFilter(null ); DocumentFilter profileFilter = filterFactory.getDocumentFilter(profile); if (profile !
addLoadedPropertySources(); 接 上边标注第二步的位置 private void load(Profile profile, DocumentFilterFactory filterFactory location是路径 name是文件名 profile则是-defalut部分或者其他-dev之类的 (name) -> load(location, name, profile, filterFactory 接上边标注第三步 private void load(String location, String name, Profile profile, DocumentFilterFactory filterFactory , DocumentConsumer consumer) { DocumentFilter defaultFilter = filterFactory.getDocumentFilter(null ); DocumentFilter profileFilter = filterFactory.getDocumentFilter(profile); // 前边说的 -default和-dev
SimpleFeatureStore) dataStore.getFeatureSource(typeName); store.setTransaction(transaction); FilterFactory2 SimpleFeatureStore) dataStore.getFeatureSource(typeName); store.setTransaction(transaction); FilterFactory2 ====getByDataID====start====="); long currentTimeMillis = System.currentTimeMillis(); FilterFactory2
(ConfigFileApplicationListener.Profile profile, ConfigFileApplicationListener.DocumentFilterFactory filterFactory (ConfigFileApplicationListener.Profile profile, ConfigFileApplicationListener.DocumentFilterFactory filterFactory (properties|yml) this.load(location, name, profile, filterFactory, consumer); }); }); } 4.2 补充(load(profile, filterFactory, consumer)方法里面的子方法阐述) 4.2.1 ## 检索路径 ## ConfigFileApplicationListener.Profile profile, ConfigFileApplicationListener.DocumentFilterFactory filterFactory
org.opengis.feature.simple.SimpleFeatureType; import org.opengis.filter.Filter; import org.opengis.filter.FilterFactory2 ; public class IntersectionBuilder extends GridFeatureBuilder { final FilterFactory2 ff2 = CommonFactoryFinder.getFilterFactory2
subscriptionData.getExpressionType()); return response; } try { FilterFactory.INSTANCE.get response.setRemark(null); return response; } //...... } checkClientConfig方法通过FilterFactory.INSTANCE.get
subscriptionData.getExpressionType()); return response; } try { FilterFactory.INSTANCE.get response.setRemark(null); return response; } //...... } checkClientConfig方法通过FilterFactory.INSTANCE.get
final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory filterFactory; private final RelFactories.ProjectFactory projectFactory; private final RelFactories.AggregateFactory final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory filterFactory; private final RelFactories.ProjectFactory projectFactory; private final RelFactories.AggregateFactory
defaultProfile); } } } 核心load方法 private void load(Profile profile, DocumentFilterFactory filterFactory 方法拼接上后缀,然后去定位配置文件 private void load(String location, String name, Profile profile, DocumentFilterFactory filterFactory 配置文件完整路径=目录名+文件名+后缀名 loadForFileExtension(loader, location + name, "." + fileExtension, profile, filterFactory PropertySourceLoader loader, String prefix, String fileExtension, Profile profile, DocumentFilterFactory filterFactory (null); DocumentFilter profileFilter = filterFactory.getDocumentFilter(profile); //如果说
3.获取:上一章有介绍,在确定了处理请求的Endpoint后,下一步就是创建创建invoker,它有个关键的属性就是filters,它由FilterFactory的GetAllFilters方法获取到。 四、Filter的获取 Filter的获取是在FilterFactory的GetAllFilters方法中, public static FilterFactoryResult GetAllFilters
this.propertySourceLoaders) { if (canLoadFileExtension(loader, location)) { load(loader, location, profile, filterFactory.getDocumentFilter PropertySourceLoader loader, String prefix, String fileExtension, Profile profile, DocumentFilterFactory filterFactory
final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory filterFactory; private final RelFactories.ProjectFactory projectFactory; private final RelFactories.AggregateFactory final RelOptCluster cluster; protected final RelOptSchema relOptSchema; private final RelFactories.FilterFactory filterFactory; private final RelFactories.ProjectFactory projectFactory; private final RelFactories.AggregateFactory
We create the new filter that might be pushed down RelNode newChildFilter = filterFactory.createFilter (filter.getInput(), newChildFilterCondition); RelNode newTopFilter = filterFactory.createFilter(newChildFilter
newLeftPredicate.isAlwaysTrue()) {//如果谓词表达式不恒为true RelNode curr = lChild; lChild = filterFactory.createFilter newRightPredicate.isAlwaysTrue()) { RelNode curr = rChild; rChild = filterFactory.createFilter(rChild
BeforeRouteDemoPredicateFactory predicateFactory = beforeRouteDemoPredicateFactory(); AddResponseCookiesDemoFilterFactory filterFactory predicateFactory.apply(config -> config.setLocalDate(properties.getBefore())); GatewayFilter gatewayFilter = filterFactory.apply