new FilterDefinition( Key.get(Filter.class), UriPatternType.get(UriPatternType.SERVLET, pattern), null); filterDef.init(createMock(ServletContext.class), injector, Sets.<Filter>newIdentityHashSet()); assertTrue(filterDef.getFilter() instanceof MockFilter); Filter matchingFilter = filterDef.getFilterIfMatching(request); assertSame(mockFilter, matchingFilter); filterDef.destroy(Sets.<Filter>newIdentityHashSet()); assertTrue("Destroy did not fire", mockFilter.isDestroy());
public Filter getFilterIfMatching(HttpServletRequest request) { final String path = ServletUtils.getContextRelativePath(request); if (shouldFilter(path)) { return filter.get(); } else { return null; } }
public void testGetFilterIfMatchingNotMatching() throws ServletException { String pattern = "/*"; final FilterDefinition filterDef = new FilterDefinition( Key.get(Filter.class), UriPatternType.get(UriPatternType.SERVLET, pattern), filterDef.init(servletContext, injector, Sets.<Filter>newIdentityHashSet()); Filter filter = filterDef.getFilterIfMatching(servletRequest); assertNull(filter); verify(servletRequest, binding, injector);
@Override public void destroyPipeline() { //destroy servlets first servletPipeline.destroy(); //go down chain and destroy all our filters Set<Filter> destroyedSoFar = Sets.newIdentityHashSet(); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.destroy(destroyedSoFar); } } }
new FilterDefinition( Key.get(Filter.class), UriPatternType.get(UriPatternType.SERVLET, pattern), initParams, null); filterDef.init(servletContext, injector, Sets.<Filter>newIdentityHashSet()); assertTrue(filterDef.getFilter() instanceof MockFilter); final FilterConfig filterConfig = mockFilter.getConfig(); assertTrue(null != filterConfig);
private void through( Key<? extends Filter> filterKey, Map<String, String> initParams, Filter filterInstance) { for (UriPatternMatcher pattern : uriPatterns) { binder .bind(FilterDefinition.class) .annotatedWith(UniqueAnnotations.create()) .toProvider(new FilterDefinition(filterKey, pattern, initParams, filterInstance)); } }
@Override public synchronized void initPipeline(ServletContext servletContext) throws ServletException { //double-checked lock, prevents duplicate initialization if (initialized) return; // Used to prevent duplicate initialization. Set<Filter> initializedSoFar = Sets.newIdentityHashSet(); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.init(servletContext, injector, initializedSoFar); } //next, initialize servlets... servletPipeline.init(servletContext, injector); //everything was ok... initialized = true; }
/** * Iterates over the remaining filter definitions. Returns the first applicable filter, or null if * none apply. */ private Filter findNextFilter(HttpServletRequest request) { while (++index < filterDefinitions.length) { Filter filter = filterDefinitions[index].getFilterIfMatching(request); if (filter != null) { return filter; } } return null; }
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) throws IOException, ServletException { index++; //dispatch down the chain while there are more filters if (index < filterDefinitions.length) { filterDefinitions[index].doFilter(servletRequest, servletResponse, this); } else { //we've reached the end of the filterchain, let's try to dispatch to a servlet final boolean serviced = servletPipeline.service(servletRequest, servletResponse); //dispatch to the normal filter chain only if one of our servlets did not match if (!serviced) { proceedingChain.doFilter(servletRequest, servletResponse); } } } }
public void testGetFilterIfMatching() throws ServletException { String pattern = "/*"; final FilterDefinition filterDef = new FilterDefinition( Key.get(Filter.class), UriPatternType.get(UriPatternType.SERVLET, pattern), filterDef.init(servletContext, injector, Sets.<Filter>newIdentityHashSet()); Filter filter = filterDef.getFilterIfMatching(servletRequest); assertSame(filter, mockFilter); verify(servletRequest, binding, injector);
@Override public void destroyPipeline() { //destroy servlets first servletPipeline.destroy(); //go down chain and destroy all our filters Set<Filter> destroyedSoFar = Sets.newIdentityHashSet(); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.destroy(destroyedSoFar); } } }
private void through( Key<? extends Filter> filterKey, Map<String, String> initParams, Filter filterInstance) { for (UriPatternMatcher pattern : uriPatterns) { binder .bind(FilterDefinition.class) .annotatedWith(UniqueAnnotations.create()) .toProvider(new FilterDefinition(filterKey, pattern, initParams, filterInstance)); } }
@Override public synchronized void initPipeline(ServletContext servletContext) throws ServletException { //double-checked lock, prevents duplicate initialization if (initialized) return; // Used to prevent duplicate initialization. Set<Filter> initializedSoFar = Sets.newIdentityHashSet(); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.init(servletContext, injector, initializedSoFar); } //next, initialize servlets... servletPipeline.init(servletContext, injector); //everything was ok... initialized = true; }
/** * Iterates over the remaining filter definitions. Returns the first applicable filter, or null if * none apply. */ private Filter findNextFilter(HttpServletRequest request) { while (++index < filterDefinitions.length) { Filter filter = filterDefinitions[index].getFilterIfMatching(request); if (filter != null) { return filter; } } return null; }
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse) throws IOException, ServletException { index++; //dispatch down the chain while there are more filters if (index < filterDefinitions.size()) { filterDefinitions.get(index).doFilter(servletRequest, servletResponse, this); } else { //we've reached the end of the filterchain, let's try to dispatch to a servlet final boolean serviced = servletPipeline.service(servletRequest, servletResponse); //dispatch to the normal filter chain only if one of our servlets did not match if (!serviced) { proceedingChain.doFilter(servletRequest, servletResponse); } } } }
new FilterDefinition( Key.get(Filter.class), UriPatternType.get(UriPatternType.SERVLET, pattern), null); filterDef.init(createMock(ServletContext.class), injector, Sets.<Filter>newIdentityHashSet()); assertTrue(filterDef.getFilter() instanceof MockFilter); Filter matchingFilter = filterDef.getFilterIfMatching(request); assertSame(mockFilter, matchingFilter); filterDef.destroy(Sets.<Filter>newIdentityHashSet()); assertTrue("destroy did not fire", mockFilter.isDestroy());
public void destroyPipeline() { //destroy servlets first servletPipeline.destroy(); //go down chain and destroy all our filters Set<Filter> destroyedSoFar = Sets.newSetFromMap(Maps.<Filter, Boolean>newIdentityHashMap()); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.destroy(destroyedSoFar); } } }
private void through(Key<? extends Filter> filterKey, Map<String, String> initParams, Filter filterInstance) { for (String pattern : uriPatterns) { filterDefinitions.add( new FilterDefinition(pattern, filterKey, UriPatternType.get(uriPatternType, pattern), initParams, filterInstance)); } }
public synchronized void initPipeline(ServletContext servletContext) throws ServletException { //double-checked lock, prevents duplicate initialization if (initialized) return; // Used to prevent duplicate initialization. Set<Filter> initializedSoFar = Sets.newSetFromMap(Maps.<Filter, Boolean>newIdentityHashMap()); for (FilterDefinition filterDefinition : filterDefinitions) { filterDefinition.init(servletContext, injector, initializedSoFar); } //next, initialize servlets... servletPipeline.init(servletContext, injector); //everything was ok... initialized = true; }
public Filter getFilterIfMatching(HttpServletRequest request) { final String path = ServletUtils.getContextRelativePath(request); if (shouldFilter(path)) { return filter.get(); } else { return null; } }