Example usage for org.springframework.mock.web MockHttpServletRequest setRemoteAddr

List of usage examples for org.springframework.mock.web MockHttpServletRequest setRemoteAddr

Introduction

In this page you can find the example usage for org.springframework.mock.web MockHttpServletRequest setRemoteAddr.

Prototype

public void setRemoteAddr(String remoteAddr) 

Source Link

Usage

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

@Test
public void testInvokeAllowedRemoteAddrWithNullRemoteIpHeader() throws Exception {
    // PREPARE/*from  w w w. ja v a 2 s . co m*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = request.getHeader("x-forwarded-for");
    assertNull("x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = request.getHeader("x-forwarded-by");
    assertNull("x-forwarded-by must be null", actualXForwardedBy);

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

    String actualRemoteHost = filterChain.getRequest().getRemoteHost();
    assertEquals("remoteHost", "remote-host-original-value", actualRemoteHost);

}

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

@Test
public void testInvokeNotAllowedRemoteAddr() throws Exception {
    // PREPARE//from   ww w . j a  v  a  2  s.  c  om
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("not-allowed-internal-proxy");
    request.setRemoteHost("not-allowed-internal-proxy-host");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, proxy2");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertEquals("x-forwarded-for must be unchanged", "140.211.11.130, proxy1, proxy2", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertNull("x-forwarded-by must be null", actualXForwardedBy);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "not-allowed-internal-proxy", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "not-allowed-internal-proxy-host", actualRemoteHost);
}

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

@Test
public void testInvokeAllProxiesAreInternal() throws Exception {

    // PREPARE/*from  www  .j  a  va2 s  .  co m*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, 192.168.0.10, 192.168.0.11");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertNull("all proxies are internal, x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertNull("all proxies are internal, x-forwarded-by must be null", actualXForwardedBy);

    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);
}

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

@Test
public void testInvokeUntrustedProxyInTheChain() throws Exception {
    // PREPARE/*w w w .j a  va2s .co  m*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, untrusted-proxy, proxy2");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertEquals("ip/host before untrusted-proxy must appear in x-forwarded-for", "140.211.11.130, proxy1",
            actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertEquals("ip/host after untrusted-proxy must appear in  x-forwarded-by", "proxy2", actualXForwardedBy);

    String actualRemoteAddr = ((HttpServletRequest) filterChain.getRequest()).getRemoteAddr();
    assertEquals("remoteAddr", "untrusted-proxy", actualRemoteAddr);

    String actualRemoteHost = ((HttpServletRequest) filterChain.getRequest()).getRemoteHost();
    assertEquals("remoteHost", "untrusted-proxy", actualRemoteHost);
}

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

@Test
public void testInvokeAllProxiesAreTrusted() throws Exception {

    // PREPARE//from  w  ww  .  j a  va  2 s . co m
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, proxy2");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertNull("all proxies are trusted, x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertEquals("all proxies are trusted, they must appear in x-forwarded-by", "proxy1, proxy2",
            actualXForwardedBy);

    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);
}

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

@Test
public void testInvokeAllProxiesAreTrustedAndRemoteAddrMatchRegexp() throws Exception {

    // PREPARE/* w  w  w .  j a va  2  s .  c  o m*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "127\\.0\\.0\\.1, 192\\.168\\..*, another-internal-proxy");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, proxy2");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertNull("all proxies are trusted, x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertEquals("all proxies are trusted, they must appear in x-forwarded-by", "proxy1, proxy2",
            actualXForwardedBy);

    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);
}

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

@Test
public void testInvokeAllProxiesAreTrustedOrInternal() throws Exception {

    // PREPARE/*  ww  w  .ja  v a 2 s .  co  m*/
    XForwardedFilter xforwardedFilter = new XForwardedFilter();
    MockFilterConfig filterConfig = new MockFilterConfig();
    filterConfig.addInitParameter(XForwardedFilter.INTERNAL_PROXIES_PARAMETER,
            "192\\.168\\.0\\.10, 192\\.168\\.0\\.11");
    filterConfig.addInitParameter(XForwardedFilter.TRUSTED_PROXIES_PARAMETER, "proxy1, proxy2, proxy3");
    filterConfig.addInitParameter(XForwardedFilter.REMOTE_IP_HEADER_PARAMETER, "x-forwarded-for");
    filterConfig.addInitParameter(XForwardedFilter.PROXIES_HEADER_PARAMETER, "x-forwarded-by");

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

    request.setRemoteAddr("192.168.0.10");
    request.setRemoteHost("remote-host-original-value");
    request.addHeader("x-forwarded-for", "140.211.11.130, proxy1, proxy2, 192.168.0.10, 192.168.0.11");

    // TEST
    xforwardedFilter.doFilter(request, new MockHttpServletResponse(), filterChain);

    // VERIFY
    String actualXForwardedFor = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-for");
    assertNull("all proxies are trusted, x-forwarded-for must be null", actualXForwardedFor);

    String actualXForwardedBy = ((HttpServletRequest) filterChain.getRequest()).getHeader("x-forwarded-by");
    assertEquals("all proxies are trusted, they must appear in x-forwarded-by", "proxy1, proxy2",
            actualXForwardedBy);

    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);
}

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

@Test
public void testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithCustomValues() throws Exception {
    // PREPARE/*w  w w.  ja va  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());
}

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

/**
 * Use <code>X-Real-IP</code> and <code>X-Secure</code> headers.
 *
 * @throws Exception//from   w  w  w  .  ja va  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 testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithDefaultValues() throws Exception {
    // PREPARE//  w ww  . ja va  2 s  . com
    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());
}