@Override public int compareTo(FilterInfo filterInfo) { if(filterInfo.getFilterName().equals(this.getFilterName())){ return filterInfo.creationDate.compareTo(getCreationDate()); } return filterInfo.getFilterName().compareTo(this.getFilterName()); }
/** * verifies compilation, instanciation and that it is a ZuulFilter * * @param sFilterCode * @return a FilterInfo object representing that code * @throws org.codehaus.groovy.control.CompilationFailedException * * @throws IllegalAccessException * @throws InstantiationException */ public FilterInfo verifyFilter(String sFilterCode) throws org.codehaus.groovy.control.CompilationFailedException, IllegalAccessException, InstantiationException { Class groovyClass = compileGroovy(sFilterCode); Object instance = instanciateClass(groovyClass); checkZuulFilterInstance(instance); BaseFilter filter = (BaseFilter) instance; String filter_id = FilterInfo.buildFilterID(ZuulApplicationInfo.getApplicationName(), filter.filterType(), groovyClass.getSimpleName()); return new FilterInfo(filter_id, sFilterCode, filter.filterType(), groovyClass.getSimpleName(), filter.disablePropertyName(), "" + filter.filterOrder(), ZuulApplicationInfo.getApplicationName()); }
@Test public void testCompile() { Class filterClass = FilterVerifier.INSTANCE.compileGroovy(sGoodGroovyScriptFilter); assertNotNull(filterClass); filterClass = FilterVerifier.INSTANCE.compileGroovy(sNotZuulFilterGroovy); assertNotNull(filterClass); try { filterClass = FilterVerifier.INSTANCE.compileGroovy(sCompileFailCode); assertFalse(true); //we shouldn't get here } catch (Exception e) { assertTrue(true); } }
FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sGoodGroovyScriptFilter); assertNotNull(filterInfo); assertEquals(filterInfo.getFilterID(), "null:filter:in"); assertEquals(filterInfo.getFilterType(), FilterType.INBOUND); assertEquals(filterInfo.getFilterName(), "filter"); assertFalse(filterInfo.isActive()); assertFalse(filterInfo.isCanary()); FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sNotZuulFilterGroovy); assertFalse(true);// shouldn't get here } catch (InstantiationException e) { FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sCompileFailCode); assertFalse(true);// shouldn't get here } catch (CompilationFailedException e) {
@Test public void testZuulFilterInstance() { Class filterClass = FilterVerifier.INSTANCE.compileGroovy(sGoodGroovyScriptFilter); assertNotNull(filterClass); try { Object filter = FilterVerifier.INSTANCE.instanciateClass(filterClass); try { FilterVerifier.INSTANCE.checkZuulFilterInstance(filter); } catch (InstantiationException e) { e.printStackTrace(); filterClass = FilterVerifier.INSTANCE.compileGroovy(sNotZuulFilterGroovy); assertNotNull(filterClass); try { Object filter = FilterVerifier.INSTANCE.instanciateClass(filterClass); try { FilterVerifier.INSTANCE.checkZuulFilterInstance(filter); assertFalse(true); //we shouldn't get here } catch (InstantiationException e) {
private void removeFilterIdFromIndex(String index, String filter_id) { List<String> filters = getFilterIdsIndex(index); if (filters.contains(filter_id)) { filters.remove(filter_id); String filterList = toFilterList(filters); cassandraGateway.updateFilterIndex(index, filterList); } }
public FilterInfo getFilterInfo(String filter_id, int revision) { List<FilterInfo> filters = getZuulFiltersForFilterId(filter_id); if (filters == null) return null; for (FilterInfo filter : filters) { if (filter.getRevision() == revision) return filter; } return null; }
public void addFilterIdToIndex(String index, String filter_id) { String filterIds = getFilterIdsRaw(index); if (filterIds.contains(filter_id)) return; if ("".equals(filterIds)) { filterIds += filter_id; } else { filterIds += "|" + filter_id; } cassandraGateway.updateFilterIndex(index, filterIds); }
@Override public FilterInfo getFilterInfoForFilter(String filter_id, int revision) { return getFilterInfo(filter_id, revision); }
/** * Starts the check against the ZuulFilter data store for changed or new filters. * * @param dao */ public static void start(ZuulFilterDAO dao) { INSTANCE = new ZuulFilterPoller(dao); }
public ZuulFilterDAOCassandra(Keyspace keyspace) { this(new CassandraGatewayProd(keyspace)); this.keyspace = keyspace; }
/** * Set an error code and print out the usage docs to the response. * * @param statusCode * @param response */ private static void setUsageError(int statusCode, HttpServletResponse response) { setUsageError(statusCode, null, response); }
FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sGoodGroovyScriptFilter); assertNotNull(filterInfo); assertEquals(filterInfo.getFilterID(), "null:filter:in"); assertEquals(filterInfo.getFilterType(), FilterType.INBOUND); assertEquals(filterInfo.getFilterName(), "filter"); assertFalse(filterInfo.isActive()); assertFalse(filterInfo.isCanary()); FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sNotZuulFilterGroovy); assertFalse(true);// shouldn't get here } catch (InstantiationException e) { FilterInfo filterInfo = FilterVerifier.INSTANCE.verifyFilter(sCompileFailCode); assertFalse(true);// shouldn't get here } catch (CompilationFailedException e) {
/** * verifies compilation, instanciation and that it is a ZuulFilter * * @param sFilterCode * @return a FilterInfo object representing that code * @throws org.codehaus.groovy.control.CompilationFailedException * * @throws IllegalAccessException * @throws InstantiationException */ public FilterInfo verifyFilter(String sFilterCode) throws org.codehaus.groovy.control.CompilationFailedException, IllegalAccessException, InstantiationException { Class groovyClass = compileGroovy(sFilterCode); Object instance = instanciateClass(groovyClass); checkZuulFilterInstance(instance); BaseFilter filter = (BaseFilter) instance; String filter_id = FilterInfo.buildFilterID(ZuulApplicationInfo.getApplicationName(), filter.filterType(), groovyClass.getSimpleName()); return new FilterInfo(filter_id, sFilterCode, filter.filterType(), groovyClass.getSimpleName(), filter.disablePropertyName(), "" + filter.filterOrder(), ZuulApplicationInfo.getApplicationName()); }
@Test public void testZuulFilterInstance() { Class filterClass = FilterVerifier.INSTANCE.compileGroovy(sGoodGroovyScriptFilter); assertNotNull(filterClass); try { Object filter = FilterVerifier.INSTANCE.instanciateClass(filterClass); try { FilterVerifier.INSTANCE.checkZuulFilterInstance(filter); } catch (InstantiationException e) { e.printStackTrace(); filterClass = FilterVerifier.INSTANCE.compileGroovy(sNotZuulFilterGroovy); assertNotNull(filterClass); try { Object filter = FilterVerifier.INSTANCE.instanciateClass(filterClass); try { FilterVerifier.INSTANCE.checkZuulFilterInstance(filter); assertFalse(true); //we shouldn't get here } catch (InstantiationException e) {
@Override public int compareTo(FilterInfo filterInfo) { if(filterInfo.getFilterName().equals(this.getFilterName())){ return filterInfo.creationDate.compareTo(getCreationDate()); } return filterInfo.getFilterName().compareTo(this.getFilterName()); }
@Test public void testCompile() { Class filterClass = FilterVerifier.INSTANCE.compileGroovy(sGoodGroovyScriptFilter); assertNotNull(filterClass); filterClass = FilterVerifier.INSTANCE.compileGroovy(sNotZuulFilterGroovy); assertNotNull(filterClass); try { filterClass = FilterVerifier.INSTANCE.compileGroovy(sCompileFailCode); assertFalse(true); //we shouldn't get here } catch (Exception e) { assertTrue(true); } }
@Override public FilterInfo getFilterInfo(String filter_id, int revision) { List<FilterInfo> filters = getZuulFiltersForFilterId(filter_id); if (filters == null) return null; for (FilterInfo filter : filters) { if (filter.getRevision() == revision) return filter; } return null; }
@Override public FilterInfo getFilterInfoForFilter(String filter_id, int revision) { return getFilterInfo(filter_id, revision); }