Search in sources :

Example 31 with ServletRequest

use of javax.servlet.ServletRequest in project felix by apache.

the class WhiteboardManager method invokePreprocessors.

/**
 * Invoke all preprocessors
 *
 * @param req The request
 * @param res The response
 * @return {@code true} to continue with dispatching, {@code false} to terminate the request.
 * @throws IOException
 * @throws ServletException
 */
public void invokePreprocessors(final HttpServletRequest req, final HttpServletResponse res, final Preprocessor dispatcher) throws ServletException, IOException {
    final List<PreprocessorHandler> localHandlers = this.preprocessorHandlers;
    if (localHandlers.isEmpty()) {
        // no preprocessors, we can directly execute
        dispatcher.doFilter(req, res, null);
    } else {
        final FilterChain chain = new FilterChain() {

            private int index = 0;

            @Override
            public void doFilter(final ServletRequest request, final ServletResponse response) throws IOException, ServletException {
                if (index == localHandlers.size()) {
                    dispatcher.doFilter(request, response, null);
                } else {
                    final PreprocessorHandler handler = localHandlers.get(index);
                    index++;
                    handler.handle(request, response, this);
                }
            }
        };
        chain.doFilter(req, res);
    }
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletRequest(javax.servlet.ServletRequest) ServletResponse(javax.servlet.ServletResponse) HttpServletResponse(javax.servlet.http.HttpServletResponse) PreprocessorHandler(org.apache.felix.http.base.internal.handler.PreprocessorHandler) FilterChain(javax.servlet.FilterChain)

Example 32 with ServletRequest

use of javax.servlet.ServletRequest in project felix by apache.

the class HttpServiceTest method setupOldWhiteboardFilter.

public void setupOldWhiteboardFilter(final String pattern) throws Exception {
    Dictionary<String, Object> servletProps = new Hashtable<String, Object>();
    servletProps.put("pattern", pattern);
    final Filter f = new Filter() {

        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            initLatch.countDown();
        }

        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            response.getWriter().print("FILTER-");
            response.flushBuffer();
            chain.doFilter(request, response);
        }

        @Override
        public void destroy() {
            destroyLatch.countDown();
        }
    };
    registrations.add(m_context.registerService(Filter.class.getName(), f, servletProps));
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletRequest(javax.servlet.ServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) ServletResponse(javax.servlet.ServletResponse) Filter(javax.servlet.Filter) Hashtable(java.util.Hashtable) FilterChain(javax.servlet.FilterChain) FilterConfig(javax.servlet.FilterConfig)

Example 33 with ServletRequest

use of javax.servlet.ServletRequest in project felix by apache.

the class JettyServiceTest method testInitBundleContextDeployIT.

/**
 * Tests to ensure the osgi-bundlecontext is available for init methods.
 *
 * @throws MalformedURLException
 * @throws InterruptedException
 */
@Test
public void testInitBundleContextDeployIT() throws Exception {
    // Setup mocks
    Deployment mockDeployment = mock(Deployment.class);
    Bundle mockBundle = mock(Bundle.class);
    BundleContext mockBundleContext = mock(BundleContext.class);
    // Setup behaviors
    when(mockDeployment.getBundle()).thenReturn(mockBundle);
    final org.osgi.framework.Filter f = mock(org.osgi.framework.Filter.class);
    when(f.toString()).thenReturn("(prop=*)");
    when(mockBundleContext.createFilter(anyString())).thenReturn(f);
    when(mockBundle.getBundleContext()).thenReturn(mockBundleContext);
    when(mockBundle.getSymbolicName()).thenReturn("test");
    when(mockBundle.getVersion()).thenReturn(new Version("0.0.1"));
    Dictionary<String, String> headerProperties = new Hashtable<String, String>();
    headerProperties.put("Web-ContextPath", "test");
    when(mockBundle.getHeaders()).thenReturn(headerProperties);
    when(mockDeployment.getContextPath()).thenReturn("test");
    when(mockBundle.getEntry("/")).thenReturn(new URL("http://www.apache.com"));
    when(mockBundle.getState()).thenReturn(Bundle.ACTIVE);
    EnumSet<DispatcherType> dispatcherSet = EnumSet.allOf(DispatcherType.class);
    dispatcherSet.add(DispatcherType.REQUEST);
    WebAppBundleContext webAppBundleContext = new WebAppBundleContext("/", mockBundle, this.getClass().getClassLoader());
    final CountDownLatch testLatch = new CountDownLatch(2);
    // Add a Filter to test whether the osgi-bundlecontext is available at init
    webAppBundleContext.addServlet(new ServletHolder(new Servlet() {

        @Override
        public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        // Do Nothing
        }

        @Override
        public void init(ServletConfig config) throws ServletException {
            ServletContext context = config.getServletContext();
            assertNotNull(context.getAttribute(OSGI_BUNDLECONTEXT));
            testLatch.countDown();
        }

        @Override
        public String getServletInfo() {
            return null;
        }

        @Override
        public ServletConfig getServletConfig() {
            return null;
        }

        @Override
        public void destroy() {
        // Do Nothing
        }
    }), "/test1");
    webAppBundleContext.addFilter(new FilterHolder(new Filter() {

        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            ServletContext context = filterConfig.getServletContext();
            assertNotNull(context.getAttribute(OSGI_BUNDLECONTEXT));
            testLatch.countDown();
        }

        @Override
        public void doFilter(ServletRequest arg0, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // Do Nothing
        }

        @Override
        public void destroy() {
        // Do Nothing
        }
    }), "/test2", dispatcherSet);
    jettyService.deploy(mockDeployment, webAppBundleContext);
    // Fail if takes too long.
    if (!testLatch.await(10, TimeUnit.SECONDS)) {
        fail("Test Was not asserted");
    }
}
Also used : ServletRequest(javax.servlet.ServletRequest) FilterHolder(org.eclipse.jetty.servlet.FilterHolder) ServletHolder(org.eclipse.jetty.servlet.ServletHolder) FilterChain(javax.servlet.FilterChain) Deployment(org.apache.felix.http.jetty.internal.JettyService.Deployment) Matchers.anyString(org.mockito.Matchers.anyString) URL(java.net.URL) Version(org.osgi.framework.Version) Servlet(javax.servlet.Servlet) ServletContext(javax.servlet.ServletContext) FilterConfig(javax.servlet.FilterConfig) DispatcherType(javax.servlet.DispatcherType) ServletResponse(javax.servlet.ServletResponse) Bundle(org.osgi.framework.Bundle) Hashtable(java.util.Hashtable) ServletConfig(javax.servlet.ServletConfig) CountDownLatch(java.util.concurrent.CountDownLatch) Filter(javax.servlet.Filter) BundleContext(org.osgi.framework.BundleContext) Test(org.junit.Test)

Example 34 with ServletRequest

use of javax.servlet.ServletRequest in project gocd by gocd.

the class FlashLoadingFilterIntegrationTest method shouldLoadExistingFlashFromSession.

@Test
public void shouldLoadExistingFlashFromSession() throws IOException, ServletException {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpSession session = new MockHttpSession();
    FlashMessageService.Flash oldFlash = new FlashMessageService.Flash();
    oldFlash.put("my_key", new FlashMessageModel("my other message", "warning"));
    session.putValue(FlashLoadingFilter.FLASH_SESSION_KEY, oldFlash);
    req.setSession(session);
    MockHttpServletResponse res = new MockHttpServletResponse();
    FilterChain filterChain = new MockFilterChain() {

        @Override
        public void doFilter(ServletRequest request, ServletResponse response) {
            flash = service.get("my_key");
        }
    };
    filter.doFilter(req, res, filterChain);
    assertThat(flash.toString(), is("my other message"));
    assertThat(flash.getFlashClass(), is("warning"));
}
Also used : ServletRequest(javax.servlet.ServletRequest) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) ServletResponse(javax.servlet.ServletResponse) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) FilterChain(javax.servlet.FilterChain) MockFilterChain(org.springframework.mock.web.MockFilterChain) MockHttpSession(org.springframework.mock.web.MockHttpSession) MockFilterChain(org.springframework.mock.web.MockFilterChain) FlashMessageModel(com.thoughtworks.go.presentation.FlashMessageModel) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) Test(org.junit.Test)

Example 35 with ServletRequest

use of javax.servlet.ServletRequest in project gocd by gocd.

the class FlashLoadingFilterIntegrationTest method shouldClearThreadContext.

@Test
public void shouldClearThreadContext() throws IOException, ServletException {
    MockHttpServletRequest req = new MockHttpServletRequest();
    MockHttpServletResponse res = new MockHttpServletResponse();
    FilterChain filterChain = new MockFilterChain() {

        @Override
        public void doFilter(ServletRequest request, ServletResponse response) {
            messageKey = service.add(new FlashMessageModel("my message", "error"));
            flash = service.get(messageKey);
        }
    };
    filter.doFilter(req, res, filterChain);
    assertThat(flash.toString(), is("my message"));
    try {
        service.get(messageKey);
        fail("attempt to load flash message should fail, as no thread local is cleared out");
    } catch (Exception e) {
        assertThat(e.getMessage(), is("No flash context found, this call should only be made within a request."));
    }
}
Also used : ServletRequest(javax.servlet.ServletRequest) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) ServletResponse(javax.servlet.ServletResponse) MockHttpServletRequest(org.springframework.mock.web.MockHttpServletRequest) FilterChain(javax.servlet.FilterChain) MockFilterChain(org.springframework.mock.web.MockFilterChain) MockFilterChain(org.springframework.mock.web.MockFilterChain) FlashMessageModel(com.thoughtworks.go.presentation.FlashMessageModel) MockHttpServletResponse(org.springframework.mock.web.MockHttpServletResponse) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) Test(org.junit.Test)

Aggregations

ServletRequest (javax.servlet.ServletRequest)314 HttpServletRequest (javax.servlet.http.HttpServletRequest)188 ServletResponse (javax.servlet.ServletResponse)183 HttpServletResponse (javax.servlet.http.HttpServletResponse)118 FilterChain (javax.servlet.FilterChain)113 Test (org.junit.Test)82 IOException (java.io.IOException)65 ServletException (javax.servlet.ServletException)64 Filter (javax.servlet.Filter)41 MockHttpServletRequest (org.springframework.mock.web.MockHttpServletRequest)28 Injector (com.google.inject.Injector)26 JspException (javax.servlet.jsp.JspException)26 RequestContext (com.agiletec.aps.system.RequestContext)25 MockHttpServletResponse (org.springframework.mock.web.MockHttpServletResponse)25 FilterConfig (javax.servlet.FilterConfig)24 MockFilterChain (org.springframework.mock.web.MockFilterChain)24 ServletContext (javax.servlet.ServletContext)23 HttpSession (javax.servlet.http.HttpSession)21 ServletTestUtils.newFakeHttpServletRequest (com.google.inject.servlet.ServletTestUtils.newFakeHttpServletRequest)18 ServletTestUtils.newFakeHttpServletResponse (com.google.inject.servlet.ServletTestUtils.newFakeHttpServletResponse)18