Example usage for org.springframework.mock.web MockFilterChain getResponse

List of usage examples for org.springframework.mock.web MockFilterChain getResponse

Introduction

In this page you can find the example usage for org.springframework.mock.web MockFilterChain getResponse.

Prototype

@Nullable
public ServletResponse getResponse() 

Source Link

Document

Return the response that #doFilter has been called with.

Usage

From source file:com.nebhale.cyclinglibrary.web.GzipFilterTest.java

@Test
public void gzipRequest() throws ServletException, IOException {
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.addHeader("Content-Encoding", "gzip");
    request.setContent(gzipContent("test-request-content"));

    MockHttpServletResponse response = new MockHttpServletResponse();
    MockFilterChain filterChain = new MockFilterChain();

    this.filter.doFilterInternal(request, response, filterChain);
    writeContent("test-response-content", filterChain.getResponse().getOutputStream());

    assertEquals("test-request-content", readContent(filterChain.getRequest().getInputStream()));
    assertEquals("test-response-content", response.getContentAsString());
}

From source file:org.sventon.web.filter.ConfigAuthorizationFilterTest.java

@Test
public void testDoFilterInternalApplicationConfiguredEditEnabledAlreadyLoggedIn() throws Exception {
    final ConfigAuthorizationFilter filter = new ConfigAuthorizationFilter(application);

    final MockHttpSession session = new MockHttpSession();
    session.setAttribute("isAdminLoggedIn", true);

    final MockHttpServletRequest request = new MockHttpServletRequest();
    request.setSession(session);//from   w  w  w  .j  av  a 2s  .  com

    final HttpServletResponse response = new MockHttpServletResponse();
    final MockFilterChain filterChain = new MockFilterChain();

    application.setConfigured(true);
    application.setEditableConfig(true);

    filter.doFilterInternal(request, response, filterChain);

    assertSame(request, filterChain.getRequest());
    assertSame(response, filterChain.getResponse());
    assertTrue((Boolean) request.getAttribute("isEdit"));
}

From source file:org.sventon.web.filter.ConfigAuthorizationFilterTest.java

@Test
public void testDoFilterInternalApplicationNotConfigured() throws Exception {
    final ConfigAuthorizationFilter filter = new ConfigAuthorizationFilter(application);

    final HttpServletRequest request = new MockHttpServletRequest();
    final HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
    final MockFilterChain filterChain = new MockFilterChain();

    application.setConfigured(false);// w  ww  . j ava 2s. c  om

    EasyMock.replay(response);
    filter.doFilterInternal(request, response, filterChain);
    EasyMock.verify(response);

    assertSame(request, filterChain.getRequest());
    assertSame(response, filterChain.getResponse());
}

From source file:org.sventon.web.filter.ConfigAuthorizationFilterTest.java

@Test
public void testDoFilterInternalApplicationConfiguredEditDisabled() throws Exception {
    final ConfigAuthorizationFilter filter = new ConfigAuthorizationFilter(application);

    final HttpServletRequest request = new MockHttpServletRequest();
    final HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
    final MockFilterChain filterChain = new MockFilterChain();

    application.setConfigured(true);//from   w  w  w. j a  v a2  s .com
    application.setEditableConfig(false);

    response.sendRedirect("/repos/list");

    EasyMock.replay(response);
    filter.doFilterInternal(request, response, filterChain);
    EasyMock.verify(response);

    assertNull(filterChain.getRequest());
    assertNull(filterChain.getResponse());
}

From source file:org.surfnet.oaaas.auth.AuthorizationServerFilterTest.java

/**
 * Test method for//from   w w  w .  j  a  v a2  s .  co m
 * {@link org.surfnet.oaaas.auth.AuthorizationServerFilter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)}
 * .
 * 
 * @throws ServletException
 * @throws IOException
 */
@Test
public void testDoFilterHappyFlow() throws IOException, ServletException {
    Map<String, String> attributes = new HashMap<String, String>();
    attributes.put("key", "value");
    VerifyTokenResponse recorderdResponse = new VerifyTokenResponse("org.surfnet.oaaas.conext.mock-client",
            Collections.singletonList("read"),
            new AuthenticatedPrincipal("john.doe", Arrays.asList("user", "admin"), attributes), 0L);
    MockFilterChain chain = doCallFilter(recorderdResponse);
    /*
     * Verify that the FilterChain#doFilter is called and the
     * VerifyTokenResponse is set on the Request
     */
    VerifyTokenResponse response = (VerifyTokenResponse) chain.getRequest()
            .getAttribute(AuthorizationServerFilter.VERIFY_TOKEN_RESPONSE);
    assertEquals("value", response.getPrincipal().getAttributes().get("key"));
    assertEquals("*", ((MockHttpServletResponse) chain.getResponse()).getHeader("Access-Control-Allow-Origin"));

    /*
     * Also test the cache by repeating the call and setting the expected result
     * to null (which would cause an exception in MockHandler#invariant if the
     * cache does not kick in)
     */
    Resource[] resource = null;
    doCallFilter(resource, new MockHttpServletResponse());
}

From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java

@Test
public void testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithDefaultValues() throws Exception {
    // PREPARE//from w w  w.  j av a 2 s .co  m
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_PARAMETER, "x-forwarded-proto");

    xforwardedFilter.init(filterConfig);
    MockFilterChain filterChain = new MockFilterChain();
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setRemoteAddr("192.168.0.10");
    request.setSecure(true);
    request.setScheme("https");
    request.addHeader("x-forwarded-for", "140.211.11.130");
    request.addHeader("x-forwarded-proto", "http");

    MockHttpServletResponse response = new MockHttpServletResponse();

    // TEST
    xforwardedFilter.doFilter(request, response, filterChain);

    // VERIFY
    boolean actualSecure = filterChain.getRequest().isSecure();
    assertEquals("request must be unsecured as header x-forwarded-proto said it is http", false, actualSecure);

    String actualScheme = filterChain.getRequest().getScheme();
    assertEquals("scheme must be http as header x-forwarded-proto said it is http", "http", actualScheme);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "140.211.11.130", actualRemoteHost);

    String actualUrl = ((HttpServletResponse) filterChain.getResponse()).encodeURL("/relativeURL");
    assertEquals("encodeURL relative", "http://localhost/relativeURL", actualUrl);

    actualUrl = ((HttpServletResponse) filterChain.getResponse()).encodeURL("https://absolute/URL");
    assertEquals("encodeURL absolute", "https://absolute/URL", actualUrl);

    String actualRedirectUrl = ((HttpServletResponse) filterChain.getResponse())
            .encodeRedirectURL("/relativeURL");
    assertEquals("encodeRedirectURL relative", "http://localhost/relativeURL", actualRedirectUrl);

    ((HttpServletResponse) filterChain.getResponse()).sendRedirect("/relativeURL");
    assertEquals("redirectedUrl", "http://localhost/relativeURL", response.getRedirectedUrl());
}

From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java

/**
 * Use <code>X-Real-IP</code> and <code>X-Secure</code> headers.
 *
 * @throws Exception//from  ww w .j  a v a 2  s .  c  o  m
 */
@Test
public void testNGinxStyleIncomingRequest() throws Exception {
    // PREPARE
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_PARAMETER, "X-Secure");
    filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_HTTPS_VALUE_PARAMETER, "on");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "X-Real-IP");

    xforwardedFilter.init(filterConfig);
    MockFilterChain filterChain = new MockFilterChain();
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setRemoteAddr("192.168.0.10");
    request.setSecure(false);
    request.setScheme("http");
    request.addHeader("X-Real-IP", "140.211.11.130");
    request.addHeader("X-Secure", "on");

    MockHttpServletResponse response = new MockHttpServletResponse();

    // TEST
    xforwardedFilter.doFilter(request, response, filterChain);

    // VERIFY
    boolean actualSecure = filterChain.getRequest().isSecure();
    assertEquals("request must be secured as header X-Secure='on'", true, actualSecure);

    String actualScheme = filterChain.getRequest().getScheme();
    assertEquals("scheme must be https as header X-Secure='on'", "https", actualScheme);

    int actualServerPort = filterChain.getRequest().getServerPort();
    assertEquals("wrong http server port", 443, actualServerPort);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "140.211.11.130", actualRemoteHost);

    ((HttpServletResponse) filterChain.getResponse()).sendRedirect("http://absolute/URL");
    assertEquals("redirectedUrl", "http://absolute/URL", response.getRedirectedUrl());
}

From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java

@Test
public void testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithCustomValues() throws Exception {
    // PREPARE//w  w  w .j a v  a 2 s.  c  o m
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.PROTOCOL_HEADER_PARAMETER, "x-forwarded-proto");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-my-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.HTTP_SERVER_PORT_PARAMETER, "8080");

    xforwardedFilter.init(filterConfig);
    MockFilterChain filterChain = new MockFilterChain();
    MockHttpServletRequest request = new MockHttpServletRequest();

    request.setRemoteAddr("192.168.0.10");
    request.setSecure(true);
    request.setScheme("https");
    request.addHeader("x-my-forwarded-for", "140.211.11.130");
    request.addHeader("x-forwarded-proto", "http");

    MockHttpServletResponse response = new MockHttpServletResponse();

    // TEST
    xforwardedFilter.doFilter(request, response, filterChain);

    // VERIFY
    boolean actualSecure = filterChain.getRequest().isSecure();
    assertEquals("request must be unsecured as header x-forwarded-proto said it is http", false, actualSecure);

    String actualScheme = filterChain.getRequest().getScheme();
    assertEquals("scheme must be http as header x-forwarded-proto said it is http", "http", actualScheme);

    int actualServerPort = filterChain.getRequest().getServerPort();
    assertEquals("wrong http server port", 8080, actualServerPort);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "140.211.11.130", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "140.211.11.130", actualRemoteHost);

    ((HttpServletResponse) filterChain.getResponse()).sendRedirect("http://absolute/URL");
    assertEquals("redirectedUrl", "http://absolute/URL", response.getRedirectedUrl());
}