@Test public void testCompositeFilter() throws ServletException, IOException { ServletContext sc = new MockServletContext(); MockFilter targetFilter = new MockFilter(); MockFilterConfig proxyConfig = new MockFilterConfig(sc); CompositeFilter filterProxy = new CompositeFilter(); filterProxy.setFilters(Arrays.asList(targetFilter)); filterProxy.init(proxyConfig); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); filterProxy.doFilter(request, response, null); assertNotNull(targetFilter.filterConfig); assertEquals(Boolean.TRUE, request.getAttribute("called")); filterProxy.destroy(); assertNull(targetFilter.filterConfig); }
@Override public void init(FilterConfig filterConfig) throws ServletException { try { Configuration configuration = AppBeans.get(Configuration.NAME); // Fill bypassUrls WebConfig webConfig = configuration.getConfig(WebConfig.class); bypassUrls.addAll(webConfig.getCubaHttpFilterBypassUrls()); bypassUrls.addAll(webConfig.getExternalHttpFilterBypassUrls()); List<Filter> filters = new ArrayList<>(); if (configuration.getConfig(WebAuthConfig.class).getExternalAuthentication()) { try { CubaAuthProvider authProvider = AppBeans.get(CubaAuthProvider.NAME); filters.add(authProvider); } catch (Exception e) { throw new ServletException(e); } } filters.addAll(getHttpRequestFilterBeans()); setFilters(filters); super.init(filterConfig); log.debug("CubaHttpFilter initialized"); } catch (RuntimeException e) { log.error("Error initializing CubaHttpFilter", e); throw e; } }