List of usage examples for org.springframework.mock.web MockHttpServletRequest addHeader
public void addHeader(String name, Object value)
From source file:fr.xebia.servlet.filter.XForwardedFilterTest.java
@Test public void testInvokeAllProxiesAreTrusted() throws Exception { // PREPARE//from w w w . jav 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"); // 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/*from www. ja v a2 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/* w ww. ja v a2s .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("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/*from w ww . j a v a 2s.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 ww . j a va2 s . c om*/ */ @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 testInvokeNotAllowedRemoteAddr() 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.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 testIncomingRequestIsSecuredButProtocolHeaderSaysItIsNotWithDefaultValues() throws Exception { // PREPARE//from w ww .j a v a2s . c om 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:org.wrml.server.WrmlServletTest.java
@Test public void testGetResourceIdHostAndPort() throws IOException, URISyntaxException { MockHttpServletRequest request = new MockHttpServletRequest(); initMockHttpRequest(request, CAPRICA_SIX_ENDPOINT); request.setMethod(Method.Get.getProtocolGivenName()); request.addHeader(WrmlServlet.WRML_HOST_HEADER_NAME, LOCALHOST); request.addHeader(WrmlServlet.WRML_PORT_HEADER_NAME, PORT_1); URI resourceUri = _Servlet.getRequestUri(request); Assert.assertEquals(resourceUri, CAPRICA_SIX_SPOOF_2_ENDPOINT); }
From source file:org.wrml.server.WrmlServletTest.java
@Test public void testGetRequestUriBadHost() throws IOException, URISyntaxException { MockHttpServletRequest request = new MockHttpServletRequest(); initMockHttpRequest(request, CAPRICA_SIX_ENDPOINT); request.setMethod(Method.Get.getProtocolGivenName()); request.addHeader(WrmlServlet.WRML_HOST_HEADER_NAME, BAD_HOST_1); try {//from w ww .j a v a2 s . co m _Servlet.getRequestUri(request); } catch (URISyntaxException use) { Assert.assertTrue(use.getMessage().contains(BAD_HOST_1)); return; } Assert.assertTrue(false); }
From source file:org.wrml.server.WrmlServletTest.java
@Test public void testGetResourceIdHostNoChange() throws IOException, URISyntaxException { MockHttpServletRequest request = new MockHttpServletRequest(); initMockHttpRequest(request, CAPRICA_SIX_SPOOF_1_ENDPOINT); request.setMethod(Method.Get.getProtocolGivenName()); request.addHeader(WrmlServlet.WRML_HOST_HEADER_NAME, LOCALHOST); URI resourceUri = _Servlet.getRequestUri(request); Assert.assertEquals(resourceUri, CAPRICA_SIX_SPOOF_1_ENDPOINT); }