if (container instanceof StandardContext) { for (ApplicationFilterConfig filterConfig : ((StandardContext) container).findApplicationFilterConfigs()) { if (filterConfig.getFilterInstance() == filter) { return null;
public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) { if (restricted) { throw MESSAGES.restrictedListenerCannotCallMethod(); } if (!context.isStarting()) { throw MESSAGES.contextAlreadyInitialized(getContextPath()); } if (context.findFilterDef(filterName) != null) { return null; } // Filter instance unicity for (Container container : context.getParent().findChildren()) { if (container instanceof StandardContext) { for (ApplicationFilterConfig filterConfig : ((StandardContext) container).findApplicationFilterConfigs()) { if (filterConfig.getFilterInstance() == filter) { return null; } } } } FilterDef filterDef = new FilterDef(); filterDef.setFilterName(filterName); filterDef.setFilterClass(filter.getClass().getName()); context.addFilterDef(filterDef); ApplicationFilterConfig filterConfig = new ApplicationFilterConfig(context, filterDef); filterConfig.setDynamic(true); filterConfig.setFilter(filter); context.addApplicationFilterConfig(filterConfig); return (FilterRegistration.Dynamic) filterConfig.getFacade(); }